作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已在我的应用中启用-com.apple.CoreData.ConcurrencyDebug 1
。通过正确使用performBlock(andWait):
,大多数崩溃很容易解决。
但是,访问托管对象的属性时有时也会崩溃。崩溃与通常的__Multithreading_Violation_AllThatIsLeftToUsIsHonor__
不同。
相反,这是NSManagedObect primitiveValueForKey:
上_PFAssertSafeMultiThreadedAccess_impl
内部的崩溃:
0x10626d48e <+190>: movq 0x2b2bbb(%rip), %rsi ; "managedObjectContext"
0x10626d495 <+197>: movq %rbx, %rdi
0x10626d498 <+200>: callq *0x25bd2a(%rip) ; (void *)0x000000010602a000: objc_msgSend
0x10626d49e <+206>: movq 0x2b4683(%rip), %rsi ; "primitiveValueForKey:"
0x10626d4a5 <+213>: movq %rax, %rdi
0x10626d4a8 <+216>: callq 0x106303270 ; _PFAssertSafeMultiThreadedAccess_impl
0x10626d4ad <+221>: jmp 0x10626d3f1 ; <+33>
0x10626d4b2 <+226>: movq 0x2b25cf(%rip), %rsi ; "retain"
0x10626d4b9 <+233>: movq 0x25bd08(%rip), %r12 ; (void *)0x000000010602a000: objc_msgSend
primitiveValueForKey:
应该负责正确使用NSManagedObjectContext。
最佳答案
这不是Apple代码中的错误。您不能从创建它的线程之外的任何线程访问NSManagedObject
。如果这样做,则违反了线程包含规则。
崩溃正是这样。您正在从创建该线程的线程之外的其他线程触摸NSManagedObject
。
关于ios - CoreData并发调试和NSManagedObject nativeValueForKey:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266016/
我已在我的应用中启用-com.apple.CoreData.ConcurrencyDebug 1。通过正确使用performBlock(andWait):,大多数崩溃很容易解决。 但是,访问托管对象的
我是一名优秀的程序员,十分优秀!