をコード:エラーと[NSClassFromString(@"Test") gotoTest];
NSClassFromString()ARCセマンティック問題セレクタの「いいえ既知のインスタンスメソッドは、「XXX中:
用法ARC:
No known class method for selector 'gotoTest'
が、MRCには、エラーを警告しない
警告からのARCはエラーになりますか?参考になっていますか?本質的な理由を知りたいですか
をコード:エラーと[NSClassFromString(@"Test") gotoTest];
NSClassFromString()ARCセマンティック問題セレクタの「いいえ既知のインスタンスメソッドは、「XXX中:
用法ARC:No known class method for selector 'gotoTest'
が、MRCには、エラーを警告しない
警告からのARCはエラーになりますか?参考になっていますか?本質的な理由を知りたいですか
あなたはMRCの下に警告含まれていませんでした:
Class method '+gotoTest' not found (return type defaults to 'id')
を、これは重要な手がかりが含まれている - コンパイラが戻り値の型を探しています。 MRCの下ではid
と仮定し、結果をオブジェクト参照として割り当てることができます。あなたが混乱し、戻り値の型が例えばfloat
なら、事態はおそらく間違っています。
ARCでは、返された値のメモリ管理を行うのはコンパイラジョブであり、これを正しく行うには、その型が必要です。したがって、戻り値の型を判別できない場合は、エラーが発生します。
あなたのコードフラグメントは、セレクタが引数を取らず値も返さないことを示しているので、そのように宣言します。メソッドを持つクラスがない場合は、次のようなプロトコルを使用できます。
となります。コンパイラは型を認識し、コードはARCでコンパイルされます。
HTH