ChenYilong / ChenYilong/iOSInterviewQuestions
关于第5题:如何重写带 copy 关键字的 setter
Open
- Dominant language
- Swift
- Stars
- 9.5k
- Forks
- 2.8k
- PR merge metrics
- No merged PRs in 30d
Description
这里苹果使用
if (_name != name) {
//[_name release];//MRC
_name = [name copy];
}
这样的写法是有原因的
由于大部分对象的引用是strong,因此某个对象的属性可能被引用了很多地方,然后在回到当前的位置赋值,并不是简单的self.x = self.x的情况
其次,大型对象的copy是十分耗费资源的动作,因此在这种情况下加了判断,能够节约不少资源
再次,除了一些特殊的小型对像copy是假copy,其余的都要进行真copy的动作,如果这样的话,一个if判断的消耗,远远小于一个copy动作的消耗
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.