保存数据时核心数据应用程序崩溃
我正在使用核心数据在数据库中输入歌曲详细信息。我有3个观点为此..首先是选择歌曲名称和它的详细信息视图来保存数据库中的细节..第三个视图是显示保存的歌曲..我的应用程序正在保存数据,有时会给予例外。保存数据时核心数据应用程序崩溃
我发现它什么时候发出异常。如果我选择歌曲并将其保存在数据库中,则会正确保存。但是当我第一次去第三视图。 Songlistviewcontroller然后打开歌曲,并尝试将其保存详细介绍它提供了有关节约线路异常..
011-11-04 11:14:10.578 SongsWithLyrics [259:207] * - [SongsListViewController controllerDidChangeContent: ]:消息发送到释放实例0x5b73b50
这里是
//save song details
- (IBAction)saveDetails:(id)sender {
NSError *error;
self.song = [NSEntityDescription insertNewObjectForEntityForName:@"Song" inManagedObjectContext:managedObjectContext];
[song setValue:songTitleString forKey:@"songTitle"];
[song setValue:albumNameText.text forKey:@"albumName"];
[song setValue:artistNameText.text forKey:@"artistName"];
[song setValue:albumGenreText.text forKey:@"albumGenre"];
[song setValue:UIImagePNGRepresentation(artworkImageview.image) forKey:@"artworkImage"];
if (![managedObjectContext save:&error])
{
NSLog(@"Problem saving: %@", [error localizedDescription]);
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Saved" message:@"" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[alert show];
[alert release];
[self.navigationController popViewControllerAnimated:YES];
}
我坚持这个问题我的代码保存歌曲..并且不能understan为什么会发生这种情况。
早些时候我的申请流程是.. SongsListviewController-> Songs-> SaveSongs
,这是工作的罚款。对于这一点。
请帮
有几个有趣的方式核心数据得到“鬼祟”你并能保持对周围事物不存在了引用。
在这种情况下,NSFetchedResultsController是犯罪嫌疑人。
您设置NSFetchedResultsController的委托 - 后来得到更新 - 除了您的委托实例不在处理该更新。
一些背景资料:
如果为已取得的成果控制器的委托, 寄存器从管理对象 方面收到变更通知控制器。处理影响结果集或 部分信息的上下文中的任何更改都会被处理,并相应地更新结果 。当结果对象 更改位置或修改部分时,控制器通知代理(请参阅 NSFetchedResultsControllerDelegate)。您通常使用这些方法 来更新表格视图的显示。
当你设置这样的代表(ARC前)时,确保你没有任何弱引用是很重要的,因为它们不会自动调零 - 而且如果留在原地,它们可能会中断。
解决方案很简单;将实例取消分配时,将委托设置为零。
你100%确定错误在你打电话保存的那行:?你粘贴的错误信息让我怀疑这一点。 – Steve
YES ..它显示EXC_BAD_Access上if(![managedObjectContext save:&error]) – iProgrammer
你可以添加完整的堆栈跟踪?另外,您是否已经通过了所有标准的EXC_BAD_ACCESS故障排除步骤?启用NSZombies等? – Steve