我怎样拷贝一个一模一样的对象呀,这个对象是我自定义的。
什么浅复制深复制,我用copy好像不行。
我希望有个这样的功能给我
[[NSArray alloc] initWithArray:<#(nonnull NSArray *)#>]
ringa_lee
copy 只有 扩展了 nscoping协议才可以使用
一般 NSString NSMutebleStringNSArray NSMutebleArrayNSDictionary NSMutebleDictionaryNSSet NSMutebleSet这些才能前面的时 只读 后面可修改只读 -> 只读
只读 -> 只读
NSArray *a = [NSArray array]; NSArray *b = [a copy];
a b 浅拷贝 地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象
浅拷贝
只读 -> 可修改 用mutablecopy可修改 -> 可修改 用mutablecopy可修改 -> 只读 用copy这些都是深拷贝 会创建对象
只读 -> 可修改
可修改 -> 可修改
可修改 -> 只读
深拷贝
你的那个 是NSarray 只读的 copy 还是只读 所以是浅拷贝
copy 只有 扩展了 nscoping协议才可以使用
一般
NSString NSMutebleString
NSArray NSMutebleArray
NSDictionary NSMutebleDictionary
NSSet NSMutebleSet
这些才能
前面的时 只读 后面可修改
只读 -> 只读
a b
浅拷贝
地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象只读 -> 可修改
用mutablecopy可修改 -> 可修改
用mutablecopy可修改 -> 只读
用copy这些都是
深拷贝
会创建对象你的那个 是NSarray 只读的 copy 还是只读 所以是浅拷贝