我的一個風險投資公司有一個叫ArticleViewController
的問題。從不調用dealloc
方法,當視圖打開和關閉三次時,有三個VC活着。該委託屬性是否強烈引用?
我讀here(偉大的來源,當你在你的ViewController一個保留循環!)以下:
如果使用
someObj.delegate = self;
視圖控制器內,檢查委託財產上
someObj
是weak
。@property (nonatomic, weak) id delegate;
其中一個片段在我的VC是:
PopViewController *pop=[[PopViewController alloc] initWithNibName:@"PopViewController" bundle:nil];
pop.delegate = self;
所以我在PopViewController.h
檢查屬性較弱。
由於strong
是默認的,並沒有明確的weak
這裏,這會導致我的保留週期?我有點懷疑,因爲我在例如頭文件中看到了同樣的事情。 UIPopoverController.h
,它在UIKit中。
@property (nonatomic, assign) id <UIPopoverControllerDelegate> delegate;
'assign'應改爲'weak',但'assign'不會導致您的參考週期,因爲'assign'不會增加參考計數。你必須有別的東西引起參考循環。 – rmaddy