gpt4 book ai didi

ios - 重新定义外部 block (promiseKit)

转载 作者:行者123 更新时间:2023-11-29 02:07:11 26 4
gpt4 key购买 nike

我正在使用 PromiseKit(很棒的框架,顺便说一句!)来处理我的应用程序和服务器 API 之间的通信。我想创建某种全局处理程序来响应诸如通知用户我的许多 promise 中的任何一个缺乏网络连接之类的事情。

PMKPromise.h 文件列出了一个未处理的错误处理程序:

/**
Called by PromiseKit in the event of unhandled errors.
The default handler NSLogs the error. Note, your handler is executed
from an undefined queue, unless you manage thread-safe data, dispatch to
a safe queue before doing anything else in your handler.
*/
extern void (^PMKUnhandledErrorHandler)(NSError *);

此类型然后在 PMKPromise.m 文件中实现,尽管文档 block 暗示这可以被覆盖。我的问题是我该如何重新定义这个变量?

复制 .m 文件中使用的相同语法会给我一个链接器错误

void(^PMKUnhandledErrorHandler)(id) = ^(NSError *error){
//...
};

==> duplicate symbol _PMKUnhandledErrorHandler

最佳答案

PMKUnhandledErrorHandler = ^(id error) {
// your code here
};

警惕不方便的错误处理程序,有时它会在错误发生后的很长一段时间内被调用,具体取决于相关 promise 何时被解除分配。它是可靠的,但并不总是立即可靠。

99% 的时间它会很慢,因为某些对象仍然在您的链中某处处理 promise ,并且它很快将被释放但尚未释放。

关于ios - 重新定义外部 block (promiseKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29655202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com