迴圈引用問題

2021-06-19 07:21:13 字數 1198 閱讀 3608

//

// main.m

// 07-迴圈引用

//// created by kevin on 13-8-9.

///*

1.@class的作用:僅僅告訴編譯器,某個名稱是乙個類

@class person; // 僅僅告訴編譯器,person是乙個類

2.開發中引用乙個類的規範

1> 在.h檔案中用@class來宣告類

2> 在.m檔案中用#import來包含類的所有東西

3.兩端迴圈引用解決方案

1> 一端用retain

2> 一端用assign

*/#import #import "card.h"

#import "person.h"

int main()

/*

描述:檔名:person.h

*/#import #import "card.h"

// @class僅僅是告訴編譯器,card是乙個類

//@class card;

@inte***ce person : nsobject

@property (nonatomic, retain) card *card;

@end

/*

描述:檔名:person.m

*/#import "person.h"

#import "card.h"

@implementation person

- (void)dealloc

@end

/*

描述:檔名:card.h

*/#import @class person;

@inte***ce card : nsobject

@property (nonatomic, assign) person *person;

@end

/*

描述:檔名:card.m

*/#import "card.h"

#import "person.h"

@implementation card

- (void)dealloc

@end

迴圈引用問題

3 迴圈的retain 問題人有寵物 狗 狗有主人 人 那麼使用在使用兩個類時,再用 import相互匯入 就會有問題 需要使用 class 但是當兩個類都要引用對方的物件進入自己的類做屬性時,記憶體洩露的另一種情況。解決辦法 其中乙個先釋放 但是還有殭屍物件的問題 另乙個解決辦法是乙個用 reta...

迴圈引用問題

迴圈引用的問題這樣理解 比如在main函式中建立了兩個類的物件a和b,現在引用計數都是1。現在讓a和b互相引用 a有乙個屬性是b物件,屬性說明是retain b有乙個屬性是a物件,屬性說明是retain 現在兩個物件的引用計數都增加了1,都變成了2。現在執行 a release b release ...

ios block迴圈引用問題

ios開發中,開了arc模式,系統自動管理記憶體,如果程式中用到了block就要注意迴圈引用帶來的記憶體洩露問題了 這幾天遇到乙個問題,正常頁面dismiss的時候是要呼叫dealloc方法的,但是我的程式就是不呼叫,研究了好久終於找到了問題出在 了 起初的 如下 void getmyrelated...