PromiseKit AnyPromise然后崩溃EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010

时间:2018-06-20 00:11:17

标签: ios crash objective-c-blocks promisekit

我在Fabric中发生崩溃,它指向Objective-C的第一行:

.startswith('.')

该应用程序正在使用PromiseKit。为什么会崩溃?

1 个答案:

答案 0 :(得分:1)

答案是:在某些情况下,somePromise可能是nil。在Objective-C中的nil上调用方法(或“向nil发送消息”)应该很好,对吧?

好吧,在这种情况下,代码实际上并没有尝试向nil发送Objective-C消息。而是尝试执行nil块。就像这样:

void (^block)() = nil;
block();  // CRASH!

因此:在对承诺进行nil之前,请确保保证不是then

感谢@mxcl在这里为我提供解决方案:https://github.com/mxcl/PromiseKit/issues/344#issuecomment-167020593