关于拷贝的基本认识
為什么80%的碼農都做不了架構師?>>> ??
從復制的層面上講:
retain:始終是淺復制。引用計數每次加一。返回對象是否可變與被復制的對象保持一致。
copy:對于可變對象為深復制,引用計數不改變;對于不可變對象是淺復制,
? ? ? ? ?引用計數每次加一。始終返回一個不可變對象。
mutableCopy:始終是深復制,引用計數不改變。始終返回一個可變對象。
?而復制的概念上區別:
淺 復?制:在復制操作時,對于被復制的對象的每一層復制都是指針復制。
深 復?制:在復制操作時,對于被復制的對象至少有一層復制是對象復制。
完全復制:在復制操作時,對于被復制的對象的每一層復制都是對象復制。
在這里就可以解釋之前一個問題:我們在定義NSString為retain類型的類屬性后去設置屬性值之后我們的計數器不會加一。這里是因為,從某種程度上講NSString是一個靜態的常量在這樣進行淺復制是不成立。
轉載于:https://my.oschina.net/jlong/blog/518631
總結
- 上一篇: 2015年10月15日项目经理中项作业(
- 下一篇: 华为-eNSP模拟器路由器无法正常启动一