观察数组并将其折叠为字符串

时间:2014-01-30 22:22:12

标签: ios cocoa mvvm reactive-cocoa

我是FRP和MVVM的新手,但到目前为止它还不错,但我现在遇到一个问题,就是在我的模型上观察一个数组,当它被设置时将它折叠成一个字符串。

RAC(self, tags) = [[RACObserve(self.deal, tags) sequence] foldLeftWithStart:@"" reduce:^id(NSString *accumulator, NSString *value) {
    return [NSString stringWithFormat:@"%@#%@ ", accumulator, value];
}];

以上代码暂停了应用。

更新

所以我想通了,这是典型的

RAC(self, tags) = [RACObserve(self.deal, tags) map:^id(NSArray *tags) {
    return [[tags rac_sequence] foldLeftWithStart:@"" reduce:^id(NSString *accumulator, NSString *value) {
        return [NSString stringWithFormat:@"%@#%@ ", accumulator, value];
    }];
}];

但这是最好的方法吗?

1 个答案:

答案 0 :(得分:2)

这个怎么样:

RAC(self, tags) = [RACObserve(self.deal, tags) map:^(NSArray *tags) {
    return [@"#" stringByAppendingString:[tags componentsJoinedByString:@"#"]];
}];