因为,自己是自学的,所以理论基础一直是鸡肋。
之前对NSString的认识就是使用copy。直到最近,看一本英文书和别人的代码,发现,好像不是这样,特总结如下:
日常使用,大部分的确应该使用copy。因为:
<pre name="code" class="objc"><pre name="code" class="objc">@property (retain,nonatomic) NSString *retainStr; @property (copy, nonatomic) NSString *copyStr; - (void)test { NSMutableString *mutStr = [NSMutableStringstringWithFormat:@"abc"]; self.retainStr = mutStr; self.copyStr = mutStr; }
此时,存在的两个str。retainStr会跟着,mutStr改变,我们一般不需要这样,而copyStr不会这样、
可以这样简单的记忆,retain是父子关系,父亲改姓氏,儿子也会改。而copy是母子,儿子不会以为母亲改变自己的姓氏。