iOS试图找出令人讨厌的崩溃

时间:2012-06-20 21:04:26

标签: ios crash sigsegv

通常情况下,崩溃日志会指出可能发生的情况,但在这种情况下,这就是我所得到的。让我们说我的主要观点是A,我有A,B和C视图。

只有在执行以下操作时才会发生这种情况:

从A到B转到C,退出应用程序并加载其他一些应用程序。然后返回我的应用程序,返回B,然后返回A(这就是崩溃的地方)。

编辑 - 我之前发布了错误的帖子......这是正确的帖子

CRASH LOG:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x4daf03bd
Crashed Thread:  7

Thread 7 name:  Dispatch queue: com.apple.root.default-priority
Thread 7 Crashed:
0   libobjc.A.dylib                 0x36f22f78 objc_msgSend + 16
1   Foundation                      0x33707d04 _NSDescriptionWithLocaleFunc + 44
2   CoreFoundation                  0x34f3a96e __CFStringAppendFormatCore + 7998
3   CoreFoundation                  0x34eb51d8 _CFStringCreateWithFormatAndArgumentsAux + 68
4   Foundation                      0x33707c2e +[NSString stringWithFormat:] + 54
5   MyGreatApp                      0x00061028 -[DataAccessor getProducts:div:productType:cat:searchsilver:completion:] (DataAccessor.m:301)
6   MyGreatApp                      0x00017196 __36-[products showNationalCategories]_block_invoke_0 (products.m:1688)
7   libdispatch.dylib               0x37886c52 _dispatch_call_block_and_release + 6
8   libdispatch.dylib               0x378927b4 _dispatch_worker_thread2 + 256
9   libsystem_c.dylib               0x35b45df4 _pthread_wqthread + 288
10  libsystem_c.dylib               0x35b45cc8 start_wqthread + 0

这是第301行(注意,进入字符串的所有对象都是NSStrings):

NSString *urlStr = [NSString stringWithFormat:@"%@?api_key=%@&device[duid]=%@&division=%@",apiUrl,apiKey, duid, division];

2 个答案:

答案 0 :(得分:0)

我的猜测是,在viewDidUnload中正在释放某些东西,而这种东西依赖于并且没有被正确地重新初始化。在大多数情况下,viewDidUnload在测试时不会被调用;当你在其他应用中离开时,我认为可能会发生的一件事情。对视图出现在屏幕上时使用的所有A属性进行一些仔细检查,并仔细检查它们是否为非零值。

答案 1 :(得分:0)

我认为当您呈现与您期望的视图控制器不同的视图控制器时,您的回调正在运行。我认为它首先通过NSLogging在不同的代码行上找出错误的字符串指针。你还有任何_block装饰用于那些字符串参数(或使用它们两次:在块的内部和外部) - 这将破坏它们的保留。