PromiseKit AnyPromise, а затем сбой EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000010

У меня происходит сбой в Fabric, который указывает на первую строку в Objective-C:

somePromise.then(^ {
  // some more code
});

Приложение использует PromiseKit. Почему это сбой?

1 ответ

Ответ: в некоторых случаях somePromise возможно nil, Вызов метода на nil (или "отправка сообщения nil") в Objective-C все должно быть прекрасно, правда?

Ну, в этом случае код на самом деле не пытается отправить сообщение Objective C nil, Вместо этого он пытается выполнить блок, который nil, Это как делать это:

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

Итак: убедитесь, что обещание не nil перед звонком then в теме.

Спасибо @mxcl за предоставленное мне решение здесь: https://github.com/mxcl/PromiseKit/issues/344

Другие вопросы по тегам