我在 Fabric 中发生崩溃,指向 Objective-C 中的第一行:
somePromise.then(^ {
// some more code
});
该应用正在使用 PromiseKit。为什么会崩溃?
最佳答案
答案是:在某些情况下 somePromise
可能是 nil
。不过,在 Objective-C 中调用 nil
上的方法(或“向 nil
发送消息”)应该完全没问题,对吧?
好吧,在这种情况下,代码实际上并没有尝试将 Objective-C 消息发送到 nil
。相反,它正在尝试执行一个 nil
的 block 。就像这样做:
void (^block)() = nil;
block(); // CRASH!
因此:在调用 then
之前确保 promise 不是 nil
。
感谢@mxcl 在这里给我解决方案:https://github.com/mxcl/PromiseKit/issues/344#issuecomment-167020593
关于ios - PromiseKit AnyPromise 然后崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50938495/