码迷,mamicode.com
首页 > 其他好文 > 详细

Copy 与MutableCopy的区别

时间:2015-07-15 10:42:13      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

NSString *string = @"origion";
NSString *stringCopy = [string copy];
NSMutableString *stringMCopy = [string mutableCopy];
[stringMCopy appendString:@"!!"];

上面这段代码中,需要注意的点:

1. retainCount对常量是无效的,数字会是个很大的数字。它对堆上的内存对象是正确的,对于栈上的常量无效。

2. copy指的是浅复制,只是复制指针。

3. mutableCopy是深复制,复制了对象到新的内存空间

4. mutableCopy出来的都是可变的(NSMutableString)

    NSMutableString *string = [NSMutableString stringWithString: @"origion"];
    NSMutableString *stringCopy = [string copy];
    [stringCopy appendString:@"!!"]; //ERROR
    NSMutableString *stringMCopy = [string mutableCopy];
    [stringMCopy appendString:@"!!"];

上面这段代码中,需要注意的点:

1. 无论copy的对象是Mutable的(NSMutableString)还是非Mutable的(NSString),copy出来的都是非Mutable的(NSString)。所以会崩溃

Copy 与MutableCopy的区别

标签:

原文地址:http://www.cnblogs.com/lihaiyin/p/4647426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!