[英]How to release subviews
在我的iPhone / iPad應用中,
我要在主視圖中添加一個子視圖。
該子視圖具有一個imageview和一個按鈕。
什么時候釋放它們?
我的代碼在這里,
customAlertView=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 600, 600)];
UIImageView *imgv=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"celebration.png"]];
UIButton *btnOK=[UIButton buttonWithType:UIButtonTypeCustom];
[btnOK setTitle:@"OK" forState:UIControlStateNormal];
[btnOK addTarget:self action:@selector(alertOKClicked) forControlEvents:UIControlEventTouchUpInside];
[customAlertView addSubview:btnOK];
[customAlertView addSubview:imgv];
[self.view addSubview:customAlertView];
[imgv release];
[btnOK release];
In one another method I am writing the code.
[customAlertView removeFromSuperview];
我的困惑是imageview和按鈕在那里如果
如果沒有怎么釋放它
正如我在此所做的,添加子視圖后立即釋放對象。 這將導致我的“確定”按鈕不值得。 並且不會影響按鈕的單擊。
所以,我應該從超級視圖中刪除。
[[customalertview子視圖]發布];
您的代碼是正確的。
將它們添加到警報視圖后,您可以釋放它們,因為警報視圖會保留它們。 當您調用removeFromSuperview
,它將自動釋放。
根據對現有答案的評論,我認為您遺漏的要點如下:
盡快啟用ARC。
您做對了。 customalertview將自動釋放其子視圖。
當釋放計數為0時,您的對象將被釋放,這在理論上意味着,如果您編碼良好,則該對象不再有任何引用。
當您在視圖中維護自定義alertView時,您將擁有一個保留您的東西的對象,因此在刪除customAlertView之前,發布計數將不會為0,因為您已將其添加到customAlertView中,並且在刪除警報時,該警報將被釋放,它保留的所有東西也將被釋放。
希望它能幫助您了解事物的運作方式。
如果您想了解有關內存管理的更多信息,可以在這里查看Apple文檔。
編輯:
我忘了提一下,刪除自定義警報后,您也需要釋放它。
如果您不了解內存管理,也可以看看: http : //cocoadevcentral.com/d/learn_objectivec/第7節
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.