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 閱讀(367) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年12月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章分類

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昌平区| 双江| 马龙县| 长宁县| 兴安县| 黄浦区| 会同县| 工布江达县| 聂荣县| 五峰| 赤城县| 邯郸县| 大城县| 青冈县| 兰西县| 德惠市| 兴城市| 达拉特旗| 金坛市| 永嘉县| 富民县| 蒲江县| 盘山县| 拉孜县| 德清县| 鄯善县| 澄城县| 平湖市| 电白县| 宝坻区| 淳化县| 启东市| 石渠县| 乌兰察布市| 贵德县| 柏乡县| 延寿县| 平阳县| 永嘉县| 阳泉市| 河北省|