自从我的iOS应用程序升级到Xcode 6.3(我承认,对代码进行了一些更改)后,我的应用程序的managedObjectContext上的保存崩溃了。
在Xcode中,我在 save 调用中休息,而调试窗口中没有任何信息。指令指针显示EXC_BAD_ACCESS。
然而,电话堆栈显示出这种令人担忧的问题。信息..
乐器没有帮助我。在设备上,应用程序崩溃而不会被拦截。设备日志显示类似的调试信息...
日期/时间:2015-04-13 11:39:53.861 +0100发布时间:
2015-04-13 11:39:32.805 +0100操作系统版本:iOS 8.3(12F69) 报告版本:105异常类型:EXC_BAD_ACCESS(SIGSEGV)异常子类型: KERN_INVALID_ADDRESS位于0x000000001bd5bec8由线程触发:0
线程0名称:调度队列:com.apple.main-thread线程0 崩溃:0 libobjc.A.dylib 0x0000000197ba8174 objc_release + 20 1 libobjc.A.dylib
0x0000000197ba9720(匿名 namespace):: AutoreleasePoolPage :: pop(void *)+ 560 2
liboainject.dylib 0x0000000100a657dc 0x100a60000 + 22492 3 CoreFoundation 0x00000001865c5070 _CFAutoreleasePoolPop + 24 4基础0x0000000187504ff8 - [NSAutoreleasePool drain] + 148 5 CoreData
0x00000001863ab6a4 - [_ PFManagedObjectReferenceQueue _processReferenceQueue:] + 2092 6 CoreData 0x00000001863b323c - [NSManagedObjectContext(_NSInternalChangeProcessing)_processRecentChanges:] + 4704 7 CoreData 0x00000001863b1790 - [NSManagedObjectContext save:] + 160
如您所见,我将数据保存在ViewController的viewWillDisappear上。
-(void)saveCompanyDetails
{
// Do change to my 'Company' NSManagedObject
...
// Save the Moc
id delegate = [[UIApplication sharedApplication]delegate];
NSManagedObjectContext *managedObjectContext = [delegate managedObjectContext];
__autoreleasing NSError *error = nil;
if( ![managedObjectContext save:&error] ) // CRASH HERE
{
// Report error etc...
}
}
看起来某些内容被发布为不同步。我当然使用ARC,因此它(在某方面不受我的影响)。我正在处理主线程,而不是任何后台线程,所以我很困惑它可能是什么。
任何人都可以协助解决可能导致此问题的原因,或者指出要查看的位置吗?目前我正在考虑回到xCode 6.2以确定它是否能够纠正(或者更确切地说是隐藏问题),但这将是一个逆行步骤并没有真正解决问题。自升级以来,我已完成代码更改,但应用程序的核心数据区域没有任何内容。
由于