我经常需要更改 anNSArray
或NSDictionary
. 通常我会这样:NSDictionary
-> 创建NSMutableDictionary
和编辑它 -> 用编辑过的替换原件NSDictionary
(作为不可变的)。
我知道这样做的两种方法:
1)使用mutable copy
和copy
:
NSDictionary *myDictionary = @{...};
NSMutableDictionary *dicToEdit = myDictionary.mutableCopy;
// Editing goes here`
myDictionary = dicToEdit.copy;
2)使用arrayWithArray:
或dictionaryWithDictionary:
NSDictionary *myDictionary = @{...};
NSMutableDictionary *dicToEdit = [NSMutableDictionary dictionaryWithDictionary:myDictionary];
// Editing goes here
myDictionary = [NSDictionary dictionaryWithDictionary:dicToEdit];
这两种方式有什么区别吗?或者这两种方法中的一种有什么问题吗?