iphone - 在保留、分配和自动释放后,在 dealloc 中释放 UILabel 会使应用程序崩溃

标签 iphone objective-c ios cocoa-touch

我的类头文件中有一个 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/

相关文章:

iphone - 在 iOS 上读取证书问题

ios - 具有多个天气数据时间帧的 CoreData 对象建模

objective-c - 基于单元格的 NSTableView 和基于 View 的 NSTableView 有什么区别?

ios - 动态将自定义字体加载到iOS

iphone - 如何创建浮点值的 NSMutableArray

iphone - NSDate 麻烦 - 或者如何忽略日期/时区?

ios - 单击时将 TableView 单元格编号传递到另一个 View ,一开始始终为 null

ios - 如何检查 NSString isEqualToString 是否有很多值

ios - 在IOS上对图像进行加密/解密

ios - 如何调试使用 SQLite 的 Ionic App