我知道這是一個常見問題,所以我需要一個解釋,所以我不會有這個問題。在我的頭文件,我已經定義了一個UIAlertView中,並保留它,如:EXC_BAD_ACCESS對警告視圖對象我保留,使用,然後釋放
@interface myController {
UIAlertView *alert;
}
@property (nonatomic, retain) UIAlertView *alert;
在我的實現,我使用,如下重用此警報:
@synthesize alert;
...
if (self.alert != nil) {
[self.alert release];
}
self.alert = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles: @"Ok To Send", nil];
[self.alert show];
我在我的dealloc也釋放這。
所以,我聽說過內存管理的黃金法則,但我顯然不理解它。黃金法則說,你絕對不能釋放你沒有保留或通過alloc獲得的對象。您必須始終釋放您通過alloc保留或獲得的對象。
我將它保留在頭文件中,所以我最終必須在dealloc中釋放它。在我的實現中,我不止一次地執行了一個警告對象的分配,所以每當我準備好重新分配它時,我就釋放舊的。
請幫我理解我的誤解。
真棒。非常感謝你的解釋。我一遍又一遍地被它困擾着 – JeffB6688