如何避免“FREED(id):发送到释放对象的消息封面= 0x398b8f0”

时间:2010-06-07 11:46:06

标签: iphone objective-c

我有这段代码:

(void)viewDidLoad {
  MoMagAppDelegate *delegate = (MoMagAppDelegate *)[[UIApplication sharedApplication] delegate];
  self.issueList = delegate.issueList; //Line to error
  NSLog(@"IssueList size %d",[self.issueList count]);
  [super viewDidLoad];
}

请建议解决此问题。

1 个答案:

答案 0 :(得分:0)

在发送消息之前,您的对象(可能是issueList?)被释放。发布代码不在您发布的代码范围内。您可以尝试设置一个名为NSZombieEnabled的环境变量。 (谷歌周围或尝试这个http://www.fromconcentratesoftware.com/2007/08/09/nszombieenabled-for-the-debugger-adverse/)如果我没记错的话,这样做的是当你在一个对象上调用release时,它实际上并没有被释放。当一个假定被释放的对象被发送一条消息时,你可以在堆栈跟踪下跟踪它。

编辑:我认为这可能更好地解释。 http://www.codza.com/how-to-debug-exc_bad_access-on-iphone