我的类头文件中有一个 UILabel
定义为:
`@property (nonatomic, retain) UILabel *label1;`
它作为实例变量存在,如下所示:
`UILabel *label1;`
并在 .m
文件中合成,但是,在 viewDidLoad
方法中我这样做:
`label1 = [UILabel alloc] init] autorelease];`
然后我在标签上做各种事情,比如设置它的框架、文本颜色等等...... 当 View Controller 被释放时,应用程序崩溃并在控制台中显示此消息
(Zombies enabled): `[CALayer release] message sent to deallocated instance` ...
当我执行以下操作时应用程序不会崩溃:
1) 删除 autorelease
词.. 或者
2) 如果我不在 dealloc 方法中释放 label1 .. 或者
3) 删除[super dealloc];来自 View Controller 的 dealloc 方法。
我怎样才能正确地释放这个 UILabel
而不会遇到这样的崩溃!!
最佳答案
你做得对。在 dealloc 中自动释放和释放。 但它不应该崩溃。因为我做了同样的事情来检查。 您能否检查一下您是否在其他地方发布了标签。 并再次在 dealloc 中释放。
关于iphone - 在保留、分配和自动释放后,在 dealloc 中释放 UILabel 会使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629194/