我知道这是一个常见问题,所以我需要一个解释,所以我不会有这个问题。在我的头文件,我已经定义了一个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