當我做到這一點:
NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
我的應用程序只是崩潰。我不明白爲什麼。我應該如何在字典中添加字符串?
當我做到這一點:
NSDictionary *dic = [NSDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
我的應用程序只是崩潰。我不明白爲什麼。我應該如何在字典中添加字符串?
你需要讓你的字典mutable,否則將不給setValue:forKey:
選擇迴應:
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
這是可可一個共同的模式:你經常會看到在對聲明的類:NSArray
/NSMutableArray
,NSSet
/NSMutableSet
,NSString
/NSMutableString
等等。可變版本能夠完成不可變版本可以做的所有事情,但它也支持更改其內容的操作。
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];
或
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"nvjd",@"name" nil];
你有兩個選擇。您可以使用鍵/值對(或多個)初始化NSDictionary
,也可以創建NSMutableDictionary
並稍後添加。
// Immutable
NSDictionary *dic = [NSDictionary dictionaryWithObject:@"nvjd" forKey:@"name"];
// Mutable
NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setValue:@"nvjd" forKey:@"name"];