この記事とアウトhttp://www.code4app.com/blog-721976-195.html
共通クラス
1、RACSiganl信号クラス。
RACEmptySignal:ヌル信号は、メソッド+空のRACSignalを実装します。
RACReturnSignal:RACSignal +リターンを実現するための1つの元信号:方法。
RACDynamicSignal:ダイナミック信号、ブロックを使用して - 行動を購読達成するために、我々は+ createSignal RACSignalを使用:方法作成したクラスのインスタンスです。
RACErrorSignal:誤差信号は、RACSignal +誤差を達成するために使用される:方法。
RACChannelTerminal:双方向バインディングを実装するためのチャネル端子、代表RACChannelの端末。
2、RACSubscriber加入者
3、RACDisposableは、信号の伝送が完了したか、間違った時間を送信しているとき、それは自動的にそれをトリガーする、退会またはクリーン資源に使用しました。
RACSerialDisposableは:使い捨て容器を使用するように、使い捨て物体を含み、アトミックにスワップアウト使い捨てオブジェクトの操作を可能にしてもよいです。
RACKVOTrampoline:代表KVO観測、観測を停止するために使用することができます。
RACCompoundDisposable:それは使い捨て複数のオブジェクトを含み、手動加算及び使い捨てオブジェクトの削除をサポートすることができます
RACScopedDisposable:それは-dispose deallocメソッド自体が呼び出されます。
4、RACSubject信号プロバイダは、彼らがシグナルとして機能することができ、また、信号を送信します。
RACGroupedSignal:パケット信号は、グルーピング機能RACSignalを実装します。
RACBehaviorSubject:加入し、それは加入者に最後に受信された値を送信する最後の信号値の繰り返し;
RACReplaySubject:購読は、再送信する場合、これらの値を加入者に繰り返し信号が、格納された値は、オフ送られます。
図5に示すように、値を包装するためRACTupleタプル型、類似にNSArray、。
6、RACSequence RACのコレクションクラス
イベントを処理するための7、RACCommand RACクラス、あなたがイベントを処理する方法を置くことができ、どのようにこのクラスに詰めイベントデータ転送、彼は簡単にイベントを監視するプロセスを実行することができます。
信号は、複数のサブスクリプションは、信号を作成する際、確実な副作用を引き起こす、信号ブロックを作成するために複数のコールを回避するために、このクラスの処理を使用することができるときとき8は、RACMulticastConnectionを用います。
GCDパッケージと9、キューの中RACScheduler RAC、。
RACImmediateScheduler:すぐにスケジュールされたタスクを実行し、同期実行スケジューラをサポートする唯一のものです。
RACQueueScheduler:シリアル非同期GCDスケジュールの抽象キュースケジューラキューのすべてのタスク。
RACTargetQueueScheduler:ターゲット・キュー・GCDシリアル非同期スケジュールに任意の順序で、RACQueueSchedulerから継承されたキュー内のすべてのタスク。
RACSubscriptionScheduler:唯一のスケジュールスケジューラへのサブスクリプション。
第二に、一般的な使用
rac_signalForSelector:代わりに、エージェントの
rac_valuesAndChangesForKeyPath:KVO
rac_signalForControlEvents:私はイベントに耳を傾けています
予告の代わりにrac_addObserverForName
rac_textSignal:テキストを変更するリスニングテキストボックス
rac_liftSelector:withSignalsFromArray:シグナル:入力信号(信号列)、各信号は、少なくとも一度、第1の選択パラメータ法をトリガするために行きますたsendNext。
第三に、一般的なマクロ
RAC(TARGET、[キーパス、[NIL_VALUE]])オブジェクトのプロパティへの結合について
RACObserve(自己、名):オブジェクトのプロパティを監視するには、信号を返します。
(OBJの)@weakify和(OBJに)@strongify
RACTuplePack:データはRACTuple(タプルクラス)にパッケージされています
RACTupleUnpack:RACTuple(タプルクラス)に対応するアンパックデータ
双方向結合RACChannelTo用の端子
第四に、操作の一般的な方法
ソース信号の内容についてflattenMapマップが新しいコンテンツにマッピングされます。
複数の信号が順次受信された信号を放射された特定の順序で組み合わされ、連結スプライシングシグナル、
次いで、第1の信号が返される信号が接続され、完了すると、2つの信号を接続するために使用されます。
1つの信号に複数の信号を結合する、新たな値が存在する任意の信号が呼び出します
zipWith 2つの信号が同時に2つの信号は、信号コンテンツを送信する場合にのみ信号に圧縮され、2つの信号の内容を組に結合され、それは次のイベント圧縮ストリームをトリガします。
combineLatest:複数の信号とを組み合わせ、それぞれの信号の最新の値を取得している、複合信号は、それぞれ少なくともsendNext一度持っている必要があり、合併は、信号がトリガされます。
重合を低減:コンテンツ信号がタプルを送信され、放出された信号のタプル値は、値に集約します
フィルタ:信号取得の条件を満たすことができる信号をフィルタリングします。
無視:シグナル仕上げ特定の値は無視。
distinctUntilChanged:最後の値と重要な変更の現在の値が信号を送信するときに、それ以外の場合は無視されます。
取る:の合計を開始してから撮影した信号をn回
takeLastは:唯一の完全な、あなたはどのように多くの合計信号を知っているので、前提条件を最後の信号N回を取る、加入者は完成呼び出す必要があります。
takeUntil:(RACSignal *):完了するまで信号を実行するための信号を取得します
スキップ:(NSUInteger):、いくつかの信号をスキップは受け付けておりません。
switchToLatest:signalOfSignals(信号)のために、信号は時々信号を送信する、signalOfSignalsは、最新の信号signalOfSignalsが送信されます。
doNext:あなたは次を実行する前に、最初のブロックを実行します
doCompleted:sendCompletedを実行する前に、最初のブロックを実行します
タイムアウト:タイムアウトは、一定期間、自動エラー後の信号を可能にします。
タイミング間隔:定期的な間隔で信号
次の遅延伝送遅延。
再びそれを再試行してください:限り、それは成功するまで故障信号がブロック実行中に再作成されますよう。
リプレイ再生:信号が繰り返し購読されている場合、リピート再生の内容
スロットルスロットル:信号が頻繁に送られた時、あなたはスロットルを使用することができますが、放出される信号の最新のコンテンツを取得するために時間をかけて、一定の期間に信号内容を送信しません。
五、UI - カテゴリー(一般的に要約)
1、rac_prepareForReuseSignal:マルチプレックスとに必要
関連UI:MKAnnotationView、UICollectionReusableView、UITableViewCellの、UITableViewHeaderFooterView
2、rac_buttonClickedSignal:イベントトリガーをクリックします
関連UI:UIActionSheet、UIAlertView
3 、rac_command:Buttonクラス、クラス関連のリフレッシュコマンド置換
関連UI:UIBarButtonItem、UIButton、UIRefreshControl
4、rac_signalForControlEvents:コントロールイベントトリガー
関連UI:uicontrolの
5、rac_gestureSignal UIGestureRecognizerイベント処理信号
関連UI:UIGestureRecognizer
6、rac_imageSelectedSignal選択された画像信号
関連UI:UIImagePickerController
7、rac_textSignal
関連UI:UITextFieldの、UITextView
図8に示すように、双方向結合関連付けられているAPIを可能にします
rac_channelForControlEvents:キー:nilValue:
関連UI:uicontrolのクラス
rac_newDateChannelWithNilValue:
関連UI:UIDatePicker
rac_newSelectedSegmentIndexChannelWithNilValue:
関連UI:UISegmentedControl
rac_newValueChannelWithNilValue:
関連UI:UISlider、UIStepper
rac_newOnChannel
関連UI:UISwitch
rac_newTextChannel
関連UI:UITextFieldです
六、財団 - カテゴリー(一般的に要約)
1、NSArrayの
rac_sequence信号セット
2、NSDataの
rac_readContentsOfURL:オプション:スケジューラ:OCよりもマルチスレッドの設定
3、NSDictionaryの
rac_sequence説明できません
rac_keySequenceキーコレクション
rac_valueSequence値コレクション
4、NSEnumerator
rac_sequence説明できません
5、NSFileHandle
名前EENOWを参照してくださいrac_readInBackground
6、NSIndexSet
rac_sequence説明できません
7、NSInvocation
rac_setArgument:atIndex:設定パラメータ
パラメータを取るrac_argumentAtIndex
戻り値関連する方法rac_returnValue
8、NSNotificationCenter
rac_addObserverForName:オブジェクト:登録通知
9、NSObjectの
破壊されたrac_willDeallocSignal目標信号を立ち上げたとき
rac_descriptionデバッグ用
rac_observeKeyPath:オプション:オブザーバー:ブロック:イベントリスナー
すべての信号は、実行中の次のとおりです。rac_liftSelector:withSignals
rac_signalForSelector:代わりの方法の
rac_signalForSelector:(SEL)セレクタfromProtocol:代わり剤
10、NSOrderedSet
rac_sequence説明できません
11、NSSet
rac_sequence説明できません
12、NSStringの
すべてrac_keyPathComponentsにパス部分を取得します。
最後の部分は、削除パスをrac_keyPathByDeletingLastKeyPathComponent
パスの最初の部分を削除しrac_keyPathByDeletingFirstKeyPathComponent
説明できないrac_sequence(文字)
rac_readContentsOfURL:usedEncoding:スケジューラ:マルチスレッドの呼び出しよりもOC
13、NSURLConnection
rac_sendAsynchronousRequest非同期要求