将项目转换为ARC后,我确信这是一个愚蠢的问题。此方法已在第一行开始崩溃:
- (MyView*) loadMyView
{
NSArray* elements = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:nil options:nil];
return (MyView*)[elements objectAtIndex:0];
}
在转换为ARC之前,此工作正常。应用程序在模拟器中崩溃,并显示以下消息:
[CFArray release]: message sent to deallocated instance
有谁能告诉我我做错了什么?
答案 0 :(得分:2)
好吧,在睡觉之后,我决定删除Nib并重新开始看看是否有帮助,当然,它现在有效。我不知道转换为ARC会导致此问题,但删除Nib并从头开始重新创建它解决了这个问题。
答案 1 :(得分:0)
尝试将owner:
参数从nil
更改为self
NSArray* elements = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
我猜是因为你将所有者设置为nil,你的数组的保留计数为零,因此正在被立即释放。
答案 2 :(得分:0)
我有同样的问题。如果您的nib文件中存在不一致,通常会发生这种情况。我的一些按钮仍然通过IBOutlets连接到我在头文件中删除的一些对象。希望这会有所帮助。