如何添加到NSDictionary
我正在使用一个NSMutableArray
并意识到使用字典是我想要实现的简单得多。
我想保存一个键作为一个NSString
和一个值作为一个int
在字典中。 这是怎么做的? 其次,mutable和一个正常的字典有什么区别?
一个可变的字典可以改变,即你可以添加和删除对象。 一旦创build, 不可变的就会被修复。
创build并添加:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10]; [dict setObject:[NSNumber numberWithInt:42] forKey:@"A cool number"];
并检索:
int myNumber = [[dict objectForKey:@"A cool number"] intValue];
通过设置你可以使用setValue:(id)value forKey:(id)key
NSMutableDictionary
对象的setValue:(id)value forKey:(id)key
方法:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; [dict setValue:[NSNumber numberWithInt:5] forKey:@"age"];
或者在现代Objective-C中:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; dict[@"age"] = @5;
可变和“正常”之间的区别是可变性。 即你可以改变NSMutableDictionary
(和NSMutableArray
)的内容,而你不能用“普通的” NSDictionary
和NSArray
当声明数组的时候,只有我们必须在NSDictionary中添加键值
NSDictionary *normalDict = [[NSDictionary alloc]initWithObjectsAndKeys:@"Value1",@"Key1",@"Value2",@"Key2",@"Value3",@"Key3",nil];
我们不能添加或删除此NSDictionary中的键值
在NSMutableDictionary中,我们也可以使用这个方法在数组初始化之后添加对象
NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc]init];' [mutableDict setObject:@"Value1" forKey:@"Key1"]; [mutableDict setObject:@"Value2" forKey:@"Key2"]; [mutableDict setObject:@"Value3" forKey:@"Key3"];
要删除键值,我们必须使用下面的代码
[mutableDict removeObject:@"Value1" forKey:@"Key1"];
更新版本
Objective-C的
创build:
NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5};
更改:
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy]; //Make the dictionary mutable to change/add mutableDictionary[@"myKey3"] = @3;
Objective-C Literals
语法叫做Objective-C Literals
。
迅速
创build:
var dictionary = ["myKey1": 7, "myKey2": 5]
更改:
dictionary["myKey3"] = 3
你想问的是“可变和不可变数组或字典之间有什么区别”。 很多时候用不同的术语来描述你已经知道的事情。 在这种情况下,您可以用“dynamic”来replace术语“可变”。 所以,一个可变的字典或数组是一个“dynamic的”,可以在运行时改变,而一个不可改变的字典或数组是一个“静态”,并定义在你的代码,并不会在运行时改变(换句话说,您将不会添加,删除或可能对元素进行sorting。)
至于如何完成,你要求我们在这里重复文件。 所有你需要做的就是search示例代码和Xcode文档,看看它是如何完成的。 但是当我第一次学习时,可变的东西也把我扔了,所以我会给你那个!