首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RACSignal combineLatest:无法减少

RACSignal combineLatest:无法减少
EN

Stack Overflow用户
提问于 2015-03-06 12:30:01
回答 2查看 565关注 0票数 0

在试图减少几个信号时,我遇到了一个可怕的编译问题。

代码语言:javascript
复制
RACSignal* contactIdentifierSignal = RACObserve(self, contactIdentifier);
RACSignal* displayNameSignal = RACObserve(self, displayName);

RACSignal* mappedThing = [RACSignal combineLatest:@[contactIdentifierSignal, displayNameSignal] reduce:^id(NSString* identifierValue, NSString* displayNameValue){      
    return @([identifierValue length] > 0 && [displayNameValue length] > 0);
}];

我得到的错误是:

无法使用‘id(^)类型( NSString* __strong,NSString* __strong)’类型的rvalue初始化类型'id(^)()‘的参数

根据ReactiveCocoa的文档,对于组合块中的每个信号,我应该有一些参数,但它似乎不起作用。

我不知道为什么这个东西需要一个没有参数的减少块.

以前有人遇到过这个问题吗?

https://github.com/ReactiveCocoa/ReactiveCocoa/blob/master/Documentation/BasicOperators.md#combining-latest-values

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-06 16:43:00

我知道这看起来很可怕,但是由于我使用的是Objective++,这个东西会变得疯狂。

我把它丢到身份证上解决了这件事.别问我为什么。

代码语言:javascript
复制
RACSignal* contactIdentifierSignal = RACObserve(self, contactIdentifier);
RACSignal* displayNameSignal = RACObserve(self, displayName);

RACSignal* mappedThing = [RACSignal combineLatest:@[contactIdentifierSignal, displayNameSignal] reduce:(id)^id(NSString* identifierValue, NSString* displayNameValue){      
    return @([identifierValue length] > 0 && [displayNameValue length] > 0);
}];
票数 1
EN

Stack Overflow用户

发布于 2015-03-06 15:49:53

我最近听说这个错误发生在使用Objective++时。无论您是否使用objc++,请考虑使用combineLatest:,然后使用map:,很可能使用RACTupleUnpack

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28898832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档