posts - 9,  comments - 0,  trackbacks - 0
 1 NSMutableString*tempString=[[NSMutableString alloc]initWithFormat:@"%@",@"testmemory"];
 2     NSLog(@"tempString retainCount-----%D",[tempString retainCount]);
 3     NSLog(@"tempString -----%p---%p",tempString,&tempString);
 4     
 5     NSMutableString*string1=[tempString retain];
 6     NSLog(@"string1 retainCount-----%D",[string1 retainCount]);
 7     NSLog(@"string1 -----%p---%p",string1,&string1);
 8     
 9     NSMutableString*string2=[tempString mutableCopy];
10     NSLog(@"string2 retainCount-----%D",[string2 retainCount]);
11     NSLog(@"string2 -----%p---%p",string2,&string2);
12     
13     
14     NSString*s=[[NSString alloc]initWithFormat:@"%@",@"hello"];
15     NSLog(@"s retainCount-----%D",[s retainCount]);
16     NSLog(@"s -----%p---%p",s,&s);
17     NSString*st=[s copy];
18     NSLog(@"st retainCount-----%D",[st retainCount]);
19     NSLog(@"st -----%p---%p",st,&st);
20     NSString*str=[s retain];
21     NSLog(@"str retainCount-----%D",[str retainCount]);
22     NSLog(@"str -----%p---%p",str,&str);

retain 时是表示指向了同一个内存空间,只是内存空间的retainCount加了1,其他的都没变,但是当copy时,如果那个内存单元里面的值是不可变的时候,我们跟retain是一样的,只是内存空间的retainCount加了1!如果那个内存单元里面的值是可变的时候,其实在在内存中另外给分配了一块内存空间,然后把值赋给内存空间里面。原来那个内存空间的retainCount不加1,现在新分配的内存空间retainCount1.

posted on 2010-12-11 15:24 阅读(357) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 
<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔档案

文章分类

搜索

  •  

最新评论

阅读排行榜

评论排行榜