为什么对象中的copy是深拷贝而字符串是浅拷贝

为什么对象中的copy是深拷贝而字符串是浅拷贝

为什么对象中的copy是深拷贝而字符串是浅拷贝

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
十字雲 2017-09-19 11:29:11

同问,copy怎么就又变成浅拷贝了

  • 看你拷贝的内容是对象还是字符串,因为涉及到可变字符串的类型还涉及到mutableCopy这个方法。
    2017-09-19 17:46:20
Tender10 2017-07-10 10:12:51

视频中老师讲的也很清楚哦,copy在拷贝对象时,比如Person这种自定义类的对象时,就是深拷贝。而拷贝字符串有关的就会使用到mutableCopy方法去进行深拷贝,因为字符串是有可变字符串和不可变字符串,所以也就有mutableCopy这个方法。当然数组和字典也涉及到可变和不可变,那么这个copy和mutableCopy哪个是深拷贝和浅拷贝,可以自己动手去尝试一下总结一下规律。这样自己会记得更加牢固。如果还是不明白,可以在问答里继续提问哦!

Tender10 2017-04-16 00:30:50

copy不仅是值的拷贝,而且是重新开辟了一个新的内存空间,用于存储拷贝的值。等同于创建了一个新的对象,然后把值赋值过去。

  • zombo29 #1
    老师你还是没回答他的问题呀,在第一个例子里,类的拷贝,Person *p2 = [p1 copy];//你说这是深拷贝 但在第二个可变字符串的例子里,NSMutableString *mstr = [str copy];//你说这里就是浅拷贝了,深拷贝需要mutableCopy。我也很困惑,求解答
    2017-07-10 04:02:10
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师