gpt4 book ai didi

ios - 神秘的核心数据故障崩溃

转载 作者:行者123 更新时间:2023-11-29 10:48:46 25 4
gpt4 key购买 nike

通过我的应用程序中的崩溃报告,我遇到了一个神秘的 Core Data 崩溃,我很难想出一个理论。没有复制步骤,没有明显的原因,但它发生了数千次。崩溃报告非常模糊,但它似乎发生在 NSManagedObject 通过属性分配给另一个时?任何理论将不胜感激。

*** Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x1dc92160 <x-coredata://6903F7F9-C600-4A29-A538-B3337F1D0BED/Profile/p47854>''

Last Exception Backtrace:
1 CoreFoundation __exceptionPreprocess + 163
2 libobjc.A.dylib objc_exception_throw + 30
3 CoreData _PFFaultHandlerLookupRow + 1477
4 CoreData _PF_FulfillDeferredFault + 203
5 CoreData _PF_ManagedObject_WillChangeValueForKeywithSetMutation + 71
6 CoreData -[NSManagedObject willChangeValueForKey:withSetMutation:usingObjects:] + 84
7 CoreData -[NSManagedObject _includeObject:intoPropertyWithKey:andIndex:] + 690
8 CoreData -[NSManagedObject _maintainInverseRelationship:forProperty:oldDestination:newDestination:] + 444
9 CoreData -[NSManagedObject _didChangeValue:forRelationship:named:withInverse:] + 1290
10 CoreData -[NSManagedObjectContext observeValueForKeyPath:ofObject:change:context:] + 322
11 Foundation NSKeyValueNotifyObserver + 273
12 Foundation NSKeyValueDidChange + 335
13 Foundation -[NSObject didChangeValueForKey:] + 94
14 CoreData -[NSManagedObject didChangeValueForKey:] + 126
15 CoreData -[NSManagedObject _updateFromRefreshSnapshot:includingTransients:] + 614
16 CoreData -[NSManagedObjectContext _copyChildObject:toParentObject:fromChildContext:] + 96
17 CoreData -[NSManagedObjectContext _parentProcessSaveRequest:inContext:error:] + 554
18 CoreData __82-[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:]_block_invoke_0 + 565
19 libdispatch.dylib _dispatch_barrier_sync_f_slow_invoke + 81
20 libdispatch.dylib _dispatch_client_callout + 23
21 libdispatch.dylib _dispatch_main_queue_callback_4CF$VARIANT$up + 227
22 CoreFoundation __CFRunLoopRun + 1291
23 CoreFoundation CFRunLoopRunSpecific + 356
24 CoreFoundation CFRunLoopRunInMode + 104
25 GraphicsServices GSEventRunModal + 74
26 UIKit UIApplicationMain + 1120
27 My App main (main.m:18)
28 libdyld.dylib start + 0

最佳答案

“CoreData could not fulfill a fault”通常发生在你使用一个上下文从持久存储中删除某个对象时,但在另一个上下文中这个对象仍然存在,这是一个错误,你试图访问它的一些属性。

不要忘记,可以根据关系的级联删除规则删除对象。

这是可能的时间表:

  1. 在上下文 A 中获取对象。默认情况下它是错误的。
  2. 在上下文 B 中获取表示商店中相同数据的对象。
  3. 对象在上下文 B 中被删除。
  4. 上下文 B 已保存,导致数据从存储中删除。
  5. 访问上下文 A 中对象的某些属性。
  6. 错误正在触发。 Core Data 尝试完成故障,但持久存储中不再有数据。

关于ios - 神秘的核心数据故障崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com