object-c 对象拷贝的问题

我怎样拷贝一个一模一样的对象呀,这个对象是我自定义的。

什么浅复制深复制,我用copy好像不行。

我希望有个这样的功能给我

[[NSArray alloc] initWithArray:<#(nonnull NSArray *)#>]

阅读 3k
1 个回答

copy 只有 扩展了 nscoping协议才可以使用

一般
NSString NSMutebleString
NSArray NSMutebleArray
NSDictionary NSMutebleDictionary
NSSet NSMutebleSet
这些才能
前面的时 只读 后面可修改
只读 -> 只读

NSArray *a = [NSArray array];
NSArray *b = [a copy];

a b 浅拷贝 地址一样的 只读 复制一份 其实执行的retain 没必要创建新对象

只读 -> 可修改 用mutablecopy
可修改 -> 可修改 用mutablecopy
可修改 -> 只读 用copy
这些都是深拷贝 会创建对象

你的那个 是NSarray 只读的 copy 还是只读 所以是浅拷贝

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题