[英]Do IBOutlet member vars retain automatically?
奇怪的發現,當我使用拖放來創建一個新的IBOutlet時,如下所示,根本沒有使用@property:
@interface SkinChoosingView : UIViewController {
IBOutlet UIActivityIndicatorView * activityIndicator;
}
Xcode插入-release
並在viewDidUnload
中將插座設置為nil。 我在viewDidLoad中看起來雖然沒有-retain
在那里! 這違背了我對內存管理的所有了解。
我認為蘋果必須知道關於這個東西的一兩件事,那么幕后發生的事情是什么? 我從來沒有從這些類型的IBOutlets泄漏,我從來沒有發布它們。
是的,它會在加載NIB文件時自動保留插座,除非您明確聲明與插座關聯的屬性為assign
屬性。
並且由於它為您保留了插座,因此必須在viewDidUnload
釋放,因為在調用下一個viewDidLoad
時將重新加載插座。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.