作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我偶尔会看到像这样的堆栈跟踪崩溃:
0 libobjc.A.dylib 0x97dc0edb objc_msgSend + 27
1 com.apple.CoreData 0x97edcdc2 -[_PFManagedObjectReferenceQueue _queueForDealloc:] + 162
2 com.apple.CoreData 0x97edccbe -[NSManagedObject release] + 94
3 com.apple.CoreFoundation 0x9318ef38 CFRelease + 152
4 com.apple.CoreFoundation 0x931a7460 __CFBasicHashStandardCallback + 384
5 com.apple.CoreFoundation 0x931a706e __CFBasicHashDrain + 478
6 com.apple.CoreFoundation 0x9318f101 _CFRelease + 353
7 com.apple.CoreFoundation 0x931bbc6d _CFAutoreleasePoolPop + 253
8 com.apple.Foundation 0x973270aa NSPopAutoreleasePool + 76
9 com.apple.Foundation 0x97326fd2 -[NSAutoreleasePool drain] + 130
10 com.apple.AppKit 0x95087185 -[NSApplication run] + 627
11 com.apple.AppKit 0x9507f2d9 NSApplicationMain + 574
12 com.karelia.Sandvox 0x70001ef6 start + 54
不幸的是,它的重现相当随机。有谁知道什么可能导致这样的崩溃?之前似乎没有人在互联网上提到过 -_queueForDealloc:
,但这并没有帮助!
我对过去的类似问题有一个模糊的内存,这是在仍然附加了 KVO 观察者的情况下释放托管对象的症状。有人同意吗?
最佳答案
终于能够在开发计算机上重现该问题,看来这次崩溃是上下文拆卸期间早期异常的副作用。
事件的顺序类似于:
MOC
正在被释放,因此是时候拆除其内容了MO
都会变成故障*MO
转变为故障的行为会发送 KVO 通知MO
MO
被释放,但异常使 Core Data 处于意外状态,因此 MO
释放崩溃简而言之,真正的问题是观察者比环境更长久;不要允许他们这样做!任何观察 MO
的对象可能也应该对 MOC
具有强引用,就像 NSObjectController
和 friend 所做的那样。
*我在测试中发现 Core Data 经常在后台线程上执行此操作,大概是为了避免阻塞主线程
MOC
– 托管对象上下文MO
– 托管对象
关于cocoa - 为什么在 -[_PFManagedObjectReferenceQueue _queueForDealloc :]? 中释放托管对象可能会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5234139/
我偶尔会看到像这样的堆栈跟踪崩溃: 0 libobjc.A.dylib 0x97dc0edb objc_msgSend + 27 1 com.apple.CoreData 0x97edcdc2 -[_
许多用户通过 HockeyApp 使用以下堆栈跟踪报告了一个奇怪的崩溃。它似乎与 NSManagedObject 在不同的调度队列中被释放有关......但我没有得到任何可能出现问题的符号。这似乎是一
我是一名优秀的程序员,十分优秀!