成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Objective-C內存管理教程和原理剖析(三)

移動開發 iOS
初學Objective-C的朋友都有一個困惑,總覺得對Objective-C的內存管理機制琢磨不透,程序經常內存泄漏或莫名其妙的崩潰。我在這里總結了自己對Objective-C內存管理機制的研究成果和經驗,寫了這么一個由淺入深的教程。希望對大家有所幫助,也歡迎大家一起探討。

 

@property (retain)和@synthesize的默認實現

在這里解釋一下@property (retain) ClassB* objB;和@synthesize objB;背后到底發生了什么(retain property的默認實現)。property實際上是getter和setter,針對有retain參數的property,背后的實現如下(請參考附件中的memman-getter-setter.m,你會發現,結果和memman-property.m一樣):

  1. @interface ClassA : NSObject 
  2.          ClassB *objB; 
  3. -(ClassB *) getObjB; 
  4. -(void) setObjB:(ClassB *) value; 
  5. @end 
  6.  
  7. @implementation ClassA 
  8. -(ClassB*) getObjB 
  9.          return objB; 
  10. -(void) setObjB:(ClassB*) value 
  11.          if (objB != value) 
  12.          { 
  13.                    [objB release]; 
  14.                    objB = [value retain]; 
  15.          } 

在setObjB中,如果新設定的值和原值不同的話,必須要把原值對象release一次,這樣才能保證retain count是正確的。

由于我們在class內部retain了一次(雖然是默認實現的),所以我們要在dealloc方法中release這個成員變量。

  1. -(void) dealloc 
  2.          [objB release]; 
  3.          [super dealloc]; 

 示例代碼文件鏈接:http://files.cnblogs.com/VinceYuan/objective-c-memman.zip

 

責任編輯:閆佳明 來源: oschina
相關推薦

2011-07-19 15:15:09

Objective-C 內存

2011-07-21 09:42:27

Objective-C 內存 Autoreleas

2013-04-11 14:37:36

Objective-CiOS內存管理系統自動創建新的aut

2013-04-11 13:57:27

Objective-CiOS開發內存管理

2013-04-11 14:16:57

Objective-CiOS開發內存管理

2011-07-18 17:14:16

Objective-C 內存 Cocoa

2011-07-27 17:10:30

Objective-C 持久化

2011-07-29 16:08:31

Objective-C 內存

2011-05-11 15:45:50

內存管理Objective-C

2011-07-20 17:04:43

Objective-C 內存 內存泄露

2011-07-21 09:32:07

Objective-C 內存 Autoreleas

2011-07-21 10:10:42

Objective-C 內存 Autoreleas

2011-08-01 11:37:41

iPhone Objective- 內存

2011-08-16 17:43:47

Objective-C內存管理Autorelease

2011-08-18 13:28:35

Objective-C內存

2011-07-08 13:49:46

Objective-C UUID

2011-08-05 14:03:39

Objective-C 對象 模板

2011-08-22 09:48:16

WindowsObjective-C

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2013-05-02 10:51:17

iOS開發Objective-C@property
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天干视频 | a级片在线观看 | 日韩欧美在线免费观看 | 午夜视频一区二区 | 久久在线 | 中文字幕一区在线观看视频 | 香蕉一区 | 国产一区二区在线免费 | 日韩av免费在线电影 | 午夜视频免费 | 99在线免费观看视频 | 亚洲免费视频在线观看 | 欧美一区二区综合 | 亚洲码欧美码一区二区三区 | 久久精品亚洲一区 | 国产亚洲一区二区精品 | 好姑娘影视在线观看高清 | 日韩一区二区三区四区五区六区 | 中文字幕精品一区二区三区精品 | 国产主播第一页 | 欧美一区二区三区四区五区无卡码 | 毛片在线免费播放 | 国产在线1 | 99视频在线| 天天操天天操 | 亚洲美女一区 | 999久久久| 亚洲 中文 欧美 日韩 在线观看 | 91动漫在线观看 | 国产97在线视频 | 久久精品一 | 九九综合 | 伊人久操 | 国产精品久久二区 | 久久久久久久久99 | 草草视频在线免费观看 | 一区二区高清在线观看 | 亚洲精品福利在线 | 欧美中文字幕一区二区 | av免费网站在线观看 | 天天玩夜夜操 |