jar*_*ryd 85 iphone objective-c nsdictionary
我正在使用a NSMutableArray
并意识到使用字典对于我想要实现的内容来说要简单得多.
我想将一个键保存为字典中NSString
的值和值int
.这是怎么做到的?其次,mutable和普通字典有什么区别?
Eik*_*iko 192
一个可变的字典是可以改变的,比如,你可以添加和删除对象.一个不可变的,一旦它被创建是固定的.
创建并添加:
NSMutableDictionary *dict = [[NSMutableDictionary alloc]initWithCapacity:10];
[dict setObject:[NSNumber numberWithInt:42] forKey:@"A cool number"];
Run Code Online (Sandbox Code Playgroud)
并检索:
int myNumber = [[dict objectForKey:@"A cool number"] intValue];
Run Code Online (Sandbox Code Playgroud)
Eim*_*tas 32
通过设置你使用对象的setValue:(id)value forKey:(id)key
方法NSMutableDictionary
:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:[NSNumber numberWithInt:5] forKey:@"age"];
Run Code Online (Sandbox Code Playgroud)
或者在现代Objective-C中:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"age"] = @5;
Run Code Online (Sandbox Code Playgroud)
可变性和"正常"之间的差异是可变性.即你可以改变NSMutableDictionary
(和NSMutableArray
)的内容,而你不能用"正常" NSDictionary
和NSArray
Mad*_*dhu 15
当声明数组时,只需要在NSDictionary中添加键值
NSDictionary *normalDict = [[NSDictionary alloc]initWithObjectsAndKeys:@"Value1",@"Key1",@"Value2",@"Key2",@"Value3",@"Key3",nil];
Run Code Online (Sandbox Code Playgroud)
我们无法在此NSDictionary中添加或删除键值
在NSMutableDictionary中,我们可以使用此方法在数组初始化之后添加对象
NSMutableDictionary *mutableDict = [[NSMutableDictionary alloc]init];'
[mutableDict setObject:@"Value1" forKey:@"Key1"];
[mutableDict setObject:@"Value2" forKey:@"Key2"];
[mutableDict setObject:@"Value3" forKey:@"Key3"];
Run Code Online (Sandbox Code Playgroud)
要删除键值,我们必须使用以下代码
[mutableDict removeObject:@"Value1" forKey:@"Key1"];
Run Code Online (Sandbox Code Playgroud)
Objective-C的
创建:
NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5};
Run Code Online (Sandbox Code Playgroud)
更改:
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy]; //Make the dictionary mutable to change/add
mutableDictionary[@"myKey3"] = @3;
Run Code Online (Sandbox Code Playgroud)
调用简写语法Objective-C Literals
.
迅速
创建:
var dictionary = ["myKey1": 7, "myKey2": 5]
Run Code Online (Sandbox Code Playgroud)
更改:
dictionary["myKey3"] = 3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
161639 次 |
最近记录: |