通过这种方式初始化NSDictionary之间是否有任何区别:
self.myData = [[NSDictionary alloc] init];
[self.myData initWithObjects:objects forKeys:keys];
或者这样:
self.myData = [[NSDictionary alloc] initWithObjects:objects forKeys:keys];
因为我问这个问题的原因是第一个不起作用。我很新,很想知道为什么?
这是我的代码: -
答案 0 :(得分:4)
您可以通过以下方式初始化词典:
self.myData = @{ @"key1" : object1,
@"key2" : object2
// etc.
};
答案 1 :(得分:4)
第一个版本调用init两次,这在大多数情况下都是非常非常糟糕的事情,但对于像NSDictionary这样的内置类尤其糟糕。我从来没有尝试过这个,但它应该崩溃,因为你初始化了一个不可变的字典,第二次尝试初始化会修改它。