美文网首页
NSString什么时候strong,什么时候用copy

NSString什么时候strong,什么时候用copy

作者: baihualinxin | 来源:发表于2018-04-19 14:42 被阅读0次

    都不希望字串的值跟着mStr变化,所以一般用copy来设置string的属性。

    如果希望字串的值跟着赋值的字串的值变化,可以使用strong,retain。

    @property (retain,nonatomic) NSString *rStr;

    @property (copy, nonatomic) NSString *cStr;

       NSMutableString *mStr = [NSMutableStringstringWithFormat:@"abc"];

    self.rStr = mStr;

     self.cStr = mStr;

    NSLog(@"mStr:%p,%p",  mStr,&mStr);

     NSLog(@"retainStr:%p,%p", _rStr, &_rStr);

     NSLog(@"copyStr:%p,%p",   _cStr, &_cStr);

    [mStr appendString:@"de"];

    NSLog(@"retainStr:%@",_rStr);

       NSLog(@"copyStr:%@",    _cStr);

    结果,

    使用retain的字串rStr的值:@"abcde",

    而使用copy的字串cStr的值:@"abc",

    注:上面的情况是针对于当把NSMutableString赋值给NSString的时候,才会有不同,如果是赋值是NSString对象,那么使用copy还是strong,结果都是一样的,因为NSString对象根本就不能改变自身的值,他是不可变的。

    相关文章

      网友评论

          本文标题:NSString什么时候strong,什么时候用copy

          本文链接:https://www.haomeiwen.com/subject/hfewkftx.html