以下の内容はhttps://anton0825.hatenablog.com/entry/20130506/1371508429より取得しました。


複数のSetterから一つのプロパティに値をセットできる場合の注意点

以下のように複数のsetterからvalueプロパティに値を代入できる場合。

@interface PropertyViewModel : NSObject
@property(nonatomic, strong) NSString *key;
@property(nonatomic, strong) NSString *value;

- (NSInteger)integerValue;
- (void)setIntegerValue:(NSInteger)value;
@end

@implementation PropertyViewModel
- (NSInteger)integerValue {
    return self.value.integerValue;
}

- (void)setIntegerValue:(NSInteger)value {
    [self willChangeValueForKey:@"integerValue"];
    self.value = @(value).stringValue;
    [self didChangeValueForKey:@"integerValue"];
}
@end

以下のようにintegerValueの変更を監視するとsetIntegerValueを経由せず変更した場合に変更が通知されない。

    [[RACAbleWithStart(property, integerValue) distinctUntilChanged] subscribeNext:^(id x) {
        ....
    }];
    property.value = @"test";

必ず大元のvalueプロパティを監視すること。
そうすると[self willChangeValueForKey:@"integerValue"];とかもいらないな。。

    [[RACAbleWithStart(property, value) distinctUntilChanged] subscribeNext:^(id x) {
        ....
    }];
    property.value = @"test";



以上の内容はhttps://anton0825.hatenablog.com/entry/20130506/1371508429より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14