Day12 oc迴圈引用

2021-09-02 13:54:46 字數 836 閱讀 1819

開發中引用乙個類的規範

1、在.h中用@class來宣告類

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

person.h 

@class card//在標頭檔案中僅僅@class,用在標頭檔案中宣告乙個類,相比較import不是全部匯入

@inte***ce person :nsobject

@property(nonatomic,retain) card *card;

@end

card.h

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

@inte***ce card :nsobject

@property(nonatomic,retain) person *person;

@end

card.m

import "person.h"//真正用的時候再匯入

@implementation card

-(void)dealloc

@end

注意:在標頭檔案中除了繼承的類(如import),其餘不用import,因為會降低編譯效率。

使用時造成迴圈retain,a retain了b,b又retain了a,如下

person *p = [[person alloc] init];

card * c = [[card alloc] init];

p.card = c;

c.person = p;

[p release];

[c release];

兩端迴圈引用,解決方法

1、一端用retain

2、一端用assign

OC 記憶體管理 迴圈引用

儲存消耗空間 ram rom 記憶體模型 cg arc mrc 記憶體變數 堆 棧 靜態區 迴圈引用在block函式中經常發生舉個例子 建立兩個全域性變數 乙個為block 另乙個是str inte cenextviewcontroller property nonatomic,strong dis...

關於OC中迴圈引用問題

在 mrc中我們經常遇到迴圈 retain 問題導致記憶體洩露。dog類 import class person inte ce dog nsobject property nonatomic retain person owner dog 類中有乙個 peson 型別的主人 void run en...

day12 猜年齡(跳出多重迴圈)

小明帶兩個妹妹參加元宵燈會。別人問她們多大了,她們調皮地說 我們倆的年齡之積是年齡之和的6倍 小明又補充說 她們可不是雙胞胎,年齡差肯定也不超過8歲啊。請你寫出 小明的較小的妹妹的年齡。1 自定義異常 raise 2 自定義函式 return 3 使用帶else字句的迴圈結構 young 1whil...