実装されたプロトコルを必要とせずに、NSObjectインスタンスでセレクターを使用したい。たとえば、呼び出されたNSObjectインスタンスがエラープロパティをサポートしている場合にエラープロパティを設定するカテゴリメソッドがあります。これはコードであり、コードは意図したとおりに機能します。
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
ただし、コンパイラはsetError:シグネチャの周りにメソッドを検出しないため、@selector(setError:)
スニペットを含む各行に対して警告を表示します。
Undeclared selector 'setError:'
この警告を取り除くためにプロトコルを宣言する必要はありません。これを使用して特別なものを実装するすべてのクラスが必要になるわけではないためです。慣例として、私は彼らにsetError:
メソッドまたはプロパティを持たせたいと思っています。
これは可能ですか?どうやって?
乾杯、
EP