我怎样拷贝一个一模一样的对象呀,这个对象是我自定义的。
什么浅复制深复制,我用copy好像不行。
我希望有个这样的功能给我
[[NSArray alloc] initWithArray:<#(nonnull NSArray *)#>]
ringa_lee
copy 只有 擴充了 nscoping協定才可以使用
一般 NSString NSMutebleStringNSArray NSMutebleArrayNSDictionary NSMutebleDictionaryNSSet NSMutebleSet這些才能前面的時讀 code
NSArray *a = [NSArray array]; NSArray *b = [a copy];
淺拷貝
只读 -> 只读
a b 浅拷贝 地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象
浅拷贝
只读 -> 可修改 用mutablecopy可修改 -> 可修改 用mutablecopy可修改 -> 只读 用copy这些都是深拷贝
只读 -> 可修改
可修改 -> 可修改
可修改 -> 只读
深拷贝
唯讀-> 可修改
可修改->可修改 用mutablecopy
可修改->可修改
可修改-> 只讀
深拷貝
copy 只有 擴充了 nscoping協定才可以使用
一般
NSString NSMutebleString
NSArray NSMutebleArray
NSDictionary NSMutebleDictionary
NSSet NSMutebleSet
這些才能
前面的時讀 code
a b
淺拷貝
位址一樣的 只讀 複製一份 其實執行的retain 沒必要建立新物件只读 -> 只读
rrreeea b
浅拷贝
地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象只读 -> 可修改
用mutablecopy可修改 -> 可修改
用mutablecopy可修改 -> 只读
用copy这些都是
深拷贝
唯讀-> 可修改
用mutablecopy可修改->可修改
用mutablecopy可修改-> 只讀
用copy🎜這些都是深拷貝
會建立物件🎜 🎜你的那個 是NSarray 只讀的 copy 還是只讀 所以是淺拷貝🎜