【发布时间】:2014-11-09 21:33:24
【问题描述】:
我在保存时 CoreData 崩溃了:
2014-09-16 09:51:58.273 My_app[2678:105246] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString appendString:]: nil argument'
*** First throw call stack:
(
0 CoreFoundation 0x00000001087413f5 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001083dabb7 objc_exception_throw + 45
2 CoreFoundation 0x000000010874132d +[NSException raise:format:] + 205
3 CoreFoundation 0x000000010871274f mutateError + 159
4 CoreData 0x000000010672ae56 -[_NSSQLGenerator prepareMasterReorderStatementPart2ForRelationship:] + 118
5 CoreData 0x0000000106792fd8 -[NSSQLAdapter newCorrelationMasterReorderStatementPart2ForRelationship:] + 72
6 CoreData 0x00000001067a9751 -[NSSQLiteConnection writeCorrelationMasterReordersFromTracker:] + 817
7 CoreData 0x00000001067aa061 -[NSSQLiteConnection writeCorrelationChangesFromTracker:] + 65
8 CoreData 0x000000010679c617 -[NSSQLCore writeChanges] + 1351
9 CoreData 0x00000001066dfadf -[NSSQLCore saveChanges:] + 479
10 CoreData 0x00000001066b0ee4 -[NSSQLCore executeRequest:withContext:error:] + 484
11 CoreData 0x00000001067868f2 __65-[NSPersistentStoreCoordinator executeRequest:withContext:error:]_block_invoke + 4354
12 CoreData 0x000000010678e7ee gutsOfBlockToNSPersistentStoreCoordinatorPerform + 190
13 libdispatch.dylib 0x00000001091e27f4 _dispatch_client_callout + 8
14 libdispatch.dylib 0x00000001091c9848 _dispatch_barrier_sync_f_invoke + 365
15 CoreData 0x00000001067813d5 _perform + 197
16 CoreData 0x00000001066b0ac8 -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 504
17 CoreData 0x00000001066d9d2d -[NSManagedObjectContext save:] + 1213
同样的代码在 ios7 中也可以使用。
有没有人有同样的崩溃?
【问题讨论】:
-
这个错误似乎很明显。您是否尝试找到错误所在的行?如果是,你能显示代码吗?
-
我也遇到了同样的崩溃。你提交过错误吗?
-
是的,我提交了一个错误。似乎崩溃只出现在模拟器上。您是否设法在设备上重现它?为了“修复”它,我只是用 try catch 包围了 save 调用:数据已正确保存。
-
我只在 iOS 8 模拟器上遇到了同样的崩溃(设备很好)。它似乎与更新使用一对多有序关系的实体有关。我将尝试将其提炼成示例项目并提交错误报告。
-
我也在尝试解决同样的问题,目前我发现的解决方法是对反向关系进行排序,但我仍然不清楚这是否是一个错误方法有问题...
标签: ios objective-c core-data ios8