1

NSMutableSet インスタンス内のオブジェクトの数が 0 より大きいかどうかに応じて、ReactiveCocoa を使用してボタンを有効にしようとしています。

次のコードを使用していますが、実行時にクラッシュが発生しています。何か案は?

RAC(self.navigationItem.leftBarButtonItem, enabled) = [RACSignal combineLatest:@[self.selectedRows] reduce:^(NSMutableSet *set){
    return @([set count] > 0);
}];

'NSInvalidArgumentException'、理由: '-[__NSSetM マップ:]: 認識されないセレクターがインスタンス 0x9671d10 に送信されました'

4

2 に答える 2

1

selectedRowsプロパティをシグナルに変換する必要があります。

RAC(self.navigationItem.leftBarButtonItem, enabled) = [RACSignal combineLatest:@[RACAbleWithStart(self.selectedRows)] reduce:^(NSMutableSet *set){
    return @([set count] > 0);
}];
于 2013-05-15T21:19:13.977 に答える
0

NSarry、NSMutableArray が KVO をサポートしていないのは悲しいことです。似たようなことをしながら

しかしありがたいことに、UIViewController は KVO に準拠しています。

//create a readonly property selectionCount
@property (nonatomic, readonly)NSInteger selectionCount;
...

//Implement the getter method
-(NSInteger)selectionCount{
    return self.arrSelection.count;
}
...

RAC(self.btnConfirm, enabled) = [RACSignal combineLatest:@[RACAbleWithStart(self.selectionCount)] reduce:^(NSNumber *count){
        return @([count integerValue] > 0);
    }];
于 2015-04-01T10:58:58.000 に答える