扫码关注官方订阅号
我怎样拷贝一个一模一样的对象呀,这个对象是我自定义的。
什么浅复制深复制,我用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 还是只读 所以是浅拷贝
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
copy 只有 扩展了 nscoping协议才可以使用
一般
NSString NSMutebleString
NSArray NSMutebleArray
NSDictionary NSMutebleDictionary
NSSet NSMutebleSet
这些才能
前面的时 只读 后面可修改
只读 -> 只读a b
浅拷贝地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象只读 -> 可修改用mutablecopy可修改 -> 可修改用mutablecopy可修改 -> 只读用copy这些都是
深拷贝会创建对象你的那个 是NSarray 只读的 copy 还是只读 所以是浅拷贝