nsdictionary副本与可变副本

Jac*_*nkr 4 cocoa copy nsdictionary nsmutabledictionary

我有

NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];
id dict = [myDictionary copy];
Run Code Online (Sandbox Code Playgroud)

dict现在只是一个常规NSDictionary?或者是它的副本NSMutableDictionary

另外,有没有办法从可变变为不可变?

Wil*_*and 17

这里涉及两种方法; -copy-mutableCopy.

如果班级有区别; -copy总是创建一个不可变的副本; 并-mutableCopy始终创建一个可变副本.

如果班级没有区别; -copy总是创造一个真正的副本.

所以是的,dict现在是一个NSDictionary,包含字典中的对象.

  • 是的,您必须明确使用`initWithDictionary:copyItems:`来创建深层副本. (4认同)