【发布时间】:2012-09-27 08:06:29
【问题描述】:
有时,我会在SPTrack 中看到源自-dealloc 的崩溃:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xb1e8ded2
Crashed Thread: 13
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_c.dylib 0x39bb8d5c memset$VARIANT$CortexA9 + 100
1 CoreFoundation 0x35e1a7fc __CFAllocateObjectArray + 176
2 CoreFoundation 0x35d62118 _CFXNotificationRemoveObservers + 420
3 Foundation 0x33834490 -[NSNotificationCenter removeObserver:name:object:] + 228
4 MyAppName 0x00179fd0 -[SPTrack dealloc] (SPTrack.m:291)
5 MyAppName 0x0017993a __destroy_helper_block_141 (SPTrack.m:223)
6 libsystem_blocks.dylib 0x352adab0 _Block_release + 220
7 libdispatch.dylib 0x34b064b4 _dispatch_client_callout + 20
8 libdispatch.dylib 0x34b0b1b8 _dispatch_main_queue_callback_4CF$VARIANT$mp + 220
9 CoreFoundation 0x35de9f36 __CFRunLoopRun + 1286
10 CoreFoundation 0x35d5ceb8 CFRunLoopRunSpecific + 352
11 CoreFoundation 0x35d5cd44 CFRunLoopRunInMode + 100
12 GraphicsServices 0x362992e6 GSEventRunModal + 70
13 UIKit 0x3713b2fc UIApplicationMain + 1116
14 MyAppName 0x0005e986 main (main.m:14)
15 MyAppName 0x0001d8e4 start + 36
这是SPTrack 中#291 上的内容:
[[NSNotificationCenter defaultCenter] removeObserver:self name:SPSessionDidUpdateMetadataNotification object:self.session];
这通常发生在我将应用从后台恢复时。
任何想法可能是什么原因?它是否试图多次移除观察者?或者self.session 是否无效? (无法用调试器捕捉到它。)
【问题讨论】:
-
这看起来像一个错误,除非你正在做一些超级疯狂的事情。我向 CocoaLibSpotify 的
dev分支添加了一个提交,如果你的理论是正确的(这听起来像是一个明智的理论),它会变得更加健壮。正如您所说,没有完整的跟踪就很难调试。我会留意的! -
谢谢。我会挑选提交,看看它是否会消失。
-
我按照补丁更新后没看到这个错误!
标签: ios spotify cocoalibspotify-2.0