初始化NSDictionary

时间:2016-07-06 07:34:46

标签: ios objective-c xcode uitableview nsdictionary

通过这种方式初始化NSDictionary之间是否有任何区别:

self.myData = [[NSDictionary alloc] init];
[self.myData initWithObjects:objects forKeys:keys];

或者这样:

self.myData = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];

因为我问这个问题的原因是第一个不起作用。我很新,很想知道为什么?

这是我的代码: -

enter image description here

2 个答案:

答案 0 :(得分:4)

您可以通过以下方式初始化词典:

self.myData = @{ @"key1" : object1, 
                 @"key2" : object2
                 // etc.
               };

答案 1 :(得分:4)

第一个版本调用init两次,这在大多数情况下都是非常非常糟糕的事情,但对于像NSDictionary这样的内置类尤其糟糕。我从来没有尝试过这个,但它应该崩溃,因为你初始化了一个不可变的字典,第二次尝试初始化会修改它。