我当时使用,NSMutableArray
并且意识到使用字典对于我要实现的目标要简单得多。
我想在字典NSString
中将键另存为,将值另存为int
。怎么做?其次,可变字典和普通字典有什么区别?
Answers:
一个可变的字典是可以改变的,也就是说,你可以添加和删除对象。一旦创建了一个不可变对象,该对象就是固定的。
创建并添加:
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
:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:[NSNumber numberWithInt:5] forKey:@"age"];
或在现代Objective-C中:
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
dict[@"age"] = @5;
可变与“正常”之间的区别是可变性。也就是说,您可以更改NSMutableDictionary
(和NSMutableArray
)的内容,而不能使用“ normal” NSDictionary
和NSArray
[{image: "/path/to/img/1.jpg", data: "foo bar 1"}, {image: "/path/to/img/2.jpg", data: "foo bar 2"}, ..., {image: "/path/to/img/N.jpg", data: "foo bar N"}]
每当声明数组时,只有我们必须在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"];
目标C
创造:
NSDictionary *dictionary = @{@"myKey1": @7, @"myKey2": @5};
更改:
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy]; //Make the dictionary mutable to change/add
mutableDictionary[@"myKey3"] = @3;
简称语法称为Objective-C Literals
。
迅速
创造:
var dictionary = ["myKey1": 7, "myKey2": 5]
更改:
dictionary["myKey3"] = 3
您想问的是“可变和不可可变的数组或字典之间有什么区别”。很多时候,这里使用不同的术语来描述您已经知道的事情。在这种情况下,可以将术语“可变”替换为“动态”。因此,可变字典或数组是“动态的”并且可以在运行时更改,而可变字典或数组是“静态的”并且在代码中定义并且在运行时不更改(换句话说)。 ,则不会添加,删除元素或对元素进行排序。)
关于如何完成,您要求我们在此处重复文档。您所需要做的就是搜索示例代码和Xcode文档,以查看其确切执行方式。但是当我第一次学习时,易变的东西也把我扔了,所以我给你!