亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Objective-C學習_內存管理學習筆記

2019-11-14 19:12:51
字體:
來源:轉載
供稿:網友

 

內存泄漏 : 應當廢棄的對象在超出生命周期后繼續存在

內存管理 : 遵守配對原則,有alloc/new/copy/mutableCopy就要有相對應的release或autorelease

原因 : Oc對象是在堆里面的(動態分配),堆里面的內存由我們程序員來管理 ;

 

對象操作

Objective –c 對應方法

生成并持有對象

alloc/new/copy/mutableCopy等

持有對象

retain 方法

釋放對象

release方法

廢棄對象

dealloc方法(系統自動調)

   內存管理的思考方式 (文中“自己”表示 : “對象的使用環境”或“開發人員”):

 

  1.自己生成的對象,自己持有

  2.非自己生成的對象,自己也能持有

  3.不再需要自己持有的對象時釋放

  4.非自己持有的對象無法釋放

 

總結 :

1.調用alloc或是retain方法之后,引用計數值 + 1

2.調用release方法之后,引用計數值 - 1

3.當引用計數值為0時,調用dealloc方法廢棄對象

4.調用retianCount,可以返回引用計數器的個數

 

多對象內存管理步驟:(使用@PRoperty就會生成下面的set方法)

1.在set方法中調用傳進來的參數 retain方法

   -(void)setRoom(Room*)room

  {

           if(_room != room){//判斷傳進來的對象是否是當前的對象

                  [_room relase];//釋放掉當前的對象

    _room = [room retain];//引用新的對象,賦值

  }

2.在dealloc方法中調用release

-(void)dealloc 

{

  [_room release];  

  _room = nil;

  [super dealloc];

}

 

autorelease 使用方法:

  1. 生成并持有NSAutoreleasePool對象(@autoreleasePool)
  2. 調用已分配對象的autorelease實例方法(retainCount不會增加,只是放在釋放池中而已)
  3. 廢棄NSAutoreleasePool對象

 

#import和@class的使用 :

#import  :包含所有的信息,包含引用類的變量和方法

@class      : 可以簡單地引用一個類(僅僅告訴編譯器,這個是一個類)

@class和#import的主要區別 : #import的內容改變了就要拷貝一次。

如何使用 :

(1)在.H文件中使用@class

(2)在.M文件中是用得是#import,真正使用的時候才要#import

 

 

解決相互引用(retain): 一端用retain,一端用assign

 

常見知識點或注意點: 

(1)剛創建一個對象的計數器就為1

(2)重寫deallloc方法的時候 : [super dealloc]必須放在最后面

(3)如果釋放了對象,把所指向的地址賦值為nil,可以防止野指針操作

(4)給空指針發送消息是不會出錯的,沒有什么現象

(5)調用retain方法會返回對象本身

(6)指針賦值并沒有調用retain,需要手動調用retain

(7)@property 生成set方法已經實現了上面的set方法和get方法,assign是默認的寫法

(8)取得一個非自己生成并自己持有的對象 : id obj=[NSMutableArray array];  持有對象 : [obj retain];(類方法里面自動調了autorelease)

(9)如果使用非自己持有的對象,這個程序會崩潰。

(10)__weak (只能用于ios5以上):可以避免循環引用,__修飾的變量不持有對象

(11)占用內存較大的不要放在autoreleasepool,性能問題

(12)重寫alloc 方法的時候一定要使用self,這樣子類也可以創建相對應的對象

(13)instancetype,比id更加智能,可以在編譯的時候就可以發現問題

(14)如果直接使用   __weak UIView * view = [[UIView alloc]init];會發出警告 : Assigning retained object to weak variable……

(15)弱應用優點 : 在持有某對象的弱引用的時,若該對象被廢棄,則弱引用將會自動失效且處于nil(被賦值的狀態)相對于__unsafe_unretained更安全

(16)非OC對象是放在棧中,指針變量(4個字節)存在棧中

  (17) A.h里#import “B”,B.h里#import “A”,導致錯誤 (Unknown type name……)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩高清电影免费观看完整版| 91最新在线免费观看| 欧美黑人xxx| 97视频在线免费观看| 精品国产区一区二区三区在线观看| 成人性生交大片免费看视频直播| 欧美华人在线视频| 亚洲免费av网址| 日韩小视频在线| 日本在线观看天堂男亚洲| 97精品一区二区三区| 91网在线免费观看| 亚洲自拍偷拍福利| 2018国产精品视频| 91最新在线免费观看| 色99之美女主播在线视频| 国产精品普通话| 久久伊人精品视频| 欧美日韩第一视频| 欧美亚洲成人网| 亚洲级视频在线观看免费1级| 久久亚洲精品网站| 午夜精品一区二区三区视频免费看| 性视频1819p久久| 高清在线视频日韩欧美| 亚洲欧美精品伊人久久| 九九热在线精品视频| 91手机视频在线观看| 国产成人aa精品一区在线播放| 国产精品久久久久久久一区探花| 色婷婷**av毛片一区| 精品中文字幕久久久久久| 国产精品美女主播| 日韩精品免费电影| 欧美一级大片在线观看| 亚洲少妇激情视频| 成人午夜在线视频一区| 久久久久久久久爱| 自拍视频国产精品| 精品久久久久久久久久ntr影视| 欧美日韩亚洲激情| 日韩在线播放一区| 国产视频精品在线| 欧美xxxx14xxxxx性爽| 成人免费自拍视频| 国产精品高潮呻吟久久av无限| 久久人人97超碰精品888| 久久青草精品视频免费观看| 91理论片午午论夜理片久久| 欧美黄色片免费观看| 日韩中文字幕精品| 欧美专区日韩视频| 亚洲精品视频在线播放| 国产成人97精品免费看片| 久久久国产视频91| 91精品久久久久久久久中文字幕| 亚洲欧美日韩久久久久久| 久久久久99精品久久久久| 日韩电影中文字幕在线| 国产精品久久av| 成人在线精品视频| 国产午夜精品理论片a级探花| 精品福利免费观看| 日韩亚洲欧美成人| 91精品成人久久| 亚洲精品美女久久久| 狠狠躁天天躁日日躁欧美| 欧美激情视频在线| 亚洲第一区第一页| 日韩视频免费观看| 成人免费激情视频| 91精品免费视频| 亚洲国产欧美一区二区丝袜黑人| 国产精品亚洲精品| 日韩视频永久免费观看| 久久全球大尺度高清视频| 亚洲天堂av高清| 国产久一一精品| 国产精品大陆在线观看| 91精品在线看| 欧美视频第一页| 在线不卡国产精品| 日韩视频永久免费观看| 欧美国产亚洲精品久久久8v| 欧美色播在线播放| 精品久久久久久国产91| 国产精品美女久久久久久免费| 国产在线精品成人一区二区三区| 国外成人在线直播| 一区二区欧美日韩视频| 一区二区欧美亚洲| 国产欧美精品在线播放| 亚洲黄色在线看| 日产精品久久久一区二区福利| 国产精品午夜一区二区欲梦| 欧美激情综合色综合啪啪五月| 亚洲欧洲日产国产网站| 成人妇女淫片aaaa视频| 伊人久久久久久久久久久久久| 91精品综合久久久久久五月天| 欧美区二区三区| 亚洲国产精品小视频| 日韩av中文字幕在线免费观看| 欧美激情在线有限公司| 国产精品扒开腿做| 欧美一级淫片aaaaaaa视频| 亚洲sss综合天堂久久| 亚洲国产成人一区| 日韩黄在线观看| 精品少妇一区二区30p| 欧美日韩国产在线| 奇米4444一区二区三区| 国产精品久久久久久婷婷天堂| 日韩欧美中文字幕在线播放| 日韩欧美在线视频日韩欧美在线视频| 亚洲欧美日韩天堂| 成人黄色生活片| 国产欧美日韩高清| 欧美精品在线视频观看| 亚洲精品98久久久久久中文字幕| xvideos亚洲| 一区二区三区视频观看| 日韩中文字幕在线观看| 国产成人精品国内自产拍免费看| 91香蕉嫩草影院入口| 久久久国产一区| 国产一区在线播放| 久久艹在线视频| 俺去了亚洲欧美日韩| 国产精品成av人在线视午夜片| 日本精品视频在线| 亚洲图片制服诱惑| 亚洲综合视频1区| 国产剧情日韩欧美| 亚洲在线第一页| 精品久久久999| 久久久久久久久网站| 欧美激情视频播放| 在线日韩av观看| 国产日韩欧美中文| 国产做受高潮69| 这里只有精品在线观看| 精品中文字幕在线观看| 欧美另类极品videosbest最新版本| 欧美激情啊啊啊| 久久亚洲精品网站| 日韩一区在线视频| 亚洲影影院av| 中文字幕在线看视频国产欧美在线看完整| 亚洲欧美国内爽妇网| 国产亚洲xxx| 国产成人精品999| 欧美特级www| 欧洲精品久久久| 久久这里只有精品视频首页| 国产精品久久一区| 韩剧1988免费观看全集| 欧美日本高清视频| 亚洲iv一区二区三区| 亚洲欧美国产精品久久久久久久| 在线观看视频亚洲| 亚洲人在线视频| 欧美精品video| 亚洲精品一区在线观看香蕉|