2017-10-31 14 views
0

この新しい既存のプロジェクトでは、RACObserve(Reactive Cocoa)を使用してObjective-Cコードを使用してAPI応答を読み取ります。 obj-cをswiftに変換したい。RACObserveを迅速に使用する方法

現在のObj-Cの実装は次のとおりです。

@interface ObjCTableViewCell : UITableViewCell 
@property (nonatomic, strong) OfferPersonal *offer; 

@end 

の.mクラス - >

- (void)bindToModel { 

    [RACObserve(self, offer.lender.name) subscribeNext:^(id x) { 
     self.nameLabel.text = x; 
    }]; 
} 

コントローラ - >

{ 
ObjCTableViewCell TableViewCell *myCell; 
     myCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
     [myCell setValue:self.offer forKey:@"offerPersonal"]; 

     [myCell bindToModel]; 
} 

今スウィフトにRACObserveを使用する方法。私は他の場所でそれを検索しようとしました。 (http://blog.scottlogic.com/2014/07/24/mvvm-reactivecocoa-swift.html)couldが正確に理解していない。

答えて

0

がない場合は、スウィフトから古いReactiveCocoaにObjCライブラリを呼び出すためにReactiveObjcBridgeを使用することができますか?スウィフトに書き直されているすべてのもの(モデル、セル、ビューコントローラ)とReactiveSwiftを使用して新しいプロジェクトです。

そうならば、あなたはMutableProperty<String>name Stringプロパティを置き換える使用する必要があり、あなたはMutablePropertyにバインドすることができます - 2つのオプションがあります。

:バインド演算子<~

nameLabel.reactive.text <~ offer.lender.name

または

B:その信号アクセスすることにより、

offer.lender.name.signal.observeValues { (value: String) in nameLabel.text = value }

はまた、プロパティが更新される回数に応じて、あなただけの1つの値に観察を制限する場合があります、 like .signal.take(first: 1).observeValues { ... }またはsignal.take(until: reactive.prepareForReuse)

関連する問題