追記: 'ReactiveObjC' ~> '2.1.0'
subscribeNext のパラメータを UIColor に変更すると、「互換性のないブロック ポインター タイプが 'void(^)(UIColor <🎜 を送信しています)」というエラーが発生します。 >__strong)' をタイプ 'void(^_Nonnull)(NSString _Nullable) のパラメータに設定します__強い)」
リーリー
リーリー
実際、変更方法は非常に簡単です。上記の方法に加えて、subscribeNext のブロック内の NSString 変数に対して型変換を実行することもできます。しかし、方法1と方法2の違いが気になります。メソッド 2 は実装できるのに、メソッド 1 はコンパイルできないのはなぜですか。このメソッドの宣言を確認したところ、ポイントされた型は id 型でしたが、メソッド 1 のシナリオでコンパイラが NSString 型を要求するのはなぜですか。方法 2 のシナリオでは、プロンプトは ID タイプです。以下はメソッドの宣言です。表示型はid型であり、NSString型のメソッド宣言はありません。
リーリー
stackoverflow RACSignal にも同様の質問があります: 互換性のないブロック ポインター型の処理、その 1 つの答えは、「エラーの理由は、subscribeNext ブロックが void を返し、return を配置することで、ブロック署名の理由がまだわかりません
現在は比較的安定したバージョン 2.5 を使用していますが、バージョン 2.1 をインストールしようとしましたが、毎回 2.1.8 がインストールされるため、具体的なソースコードが表示されません。アップグレードした方が便利です。