gpt4 book ai didi

ios - ReactiveCocoa- map 方法错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:05:36 27 4
gpt4 key购买 nike

我正在编写一种方法,该方法从 Web 服务获取信号,然后将其从 NSDictionary 转换为对象。但是,如果在此转换中发生错误怎么办?

然后我会返回一个RACSignal error:error]吗?

[signal map:^id(NSDictionary *dictionary) {
NSError *error;
SAMWebServiceResponse *samResponse = [MTLJSONAdapter modelOfClass: SAMWebServiceResponse.class
fromJSONDictionary: dictionary
error: &error];
if (error) {
//TODO: Don't know if this is the way to go.
return [RACSignal error:error];
} else {
return samResponse;
}
}
]

最佳答案

ReactiveCocoa 有一个专门针对这种情况的结构,称为 tryMap:。检查一下:

[signal tryMap:^id(NSDictionary *dictionary, NSError **errorPtr) {
return [MTLJSONAdapter modelOfClass:SAMWebServiceResponse.class
fromJSONDictionary:dictionary
error:errorPtr];
}]

这假设 modelOfClass:fromJSONDictionary:error: 将在发生错误时返回 nil——这是非常标准的——但值得检查一下文档如果。您现在编写的代码将只返回该错误信号,这是完全合法的事情(信号的信号是 RAC 的最佳部分),但不是您想要的。

关于ios - ReactiveCocoa- map 方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23110327/

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