PromiseKit AnyPromise 然后崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010
Posted
技术标签:
【中文标题】PromiseKit AnyPromise 然后崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010【英文标题】:PromiseKit AnyPromise then crash EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010 【发布时间】:2018-06-20 00:11:16 【问题描述】:我在 Fabric 中遇到了指向 Objective-C 第一行的崩溃:
somePromise.then(^
// some more code
);
该应用正在使用 PromiseKit。为什么会崩溃?
【问题讨论】:
【参考方案1】:答案是:在某些情况下somePromise
可能是nil
。不过,在 Objective-C 中调用 nil
上的方法(或“向 nil
发送消息”)应该没问题,对吧?
好吧,在这种情况下,代码实际上并没有尝试向 nil
发送 Objective-C 消息。相反,它正在尝试执行nil
的块。就像这样做:
void (^block)() = nil;
block(); // CRASH!
所以:在调用 then
之前确保 promise 不是 nil
。
感谢@mxcl 在这里为我提供解决方案:https://github.com/mxcl/PromiseKit/issues/344#issuecomment-167020593
【讨论】:
以上是关于PromiseKit AnyPromise 然后崩溃 EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010的主要内容,如果未能解决你的问题,请参考以下文章
然后在 Promisekit 中重新加载 tableview