id パラメータを持つメソッドがあります。クラス内のプロパティとして id もあります。私の質問は init メソッドにあります。渡されたパラメーターを保持できるかどうかを判断できる方法があるので、次のようなことができます。
someProperty = [idParameter retain];
ありがとう
id パラメータを持つメソッドがあります。クラス内のプロパティとして id もあります。私の質問は init メソッドにあります。渡されたパラメーターを保持できるかどうかを判断できる方法があるので、次のようなことができます。
someProperty = [idParameter retain];
ありがとう
すべての Objective-C オブジェクト (つまり、NSObject
クラスから継承するもの、またはNSObject
プロトコルを実装するもの)はすべて実装しますretain
。これはクラスによって実装されNSObject
、プロトコルに必要なメソッドであるため、呼び出すことができない Objective-C オブジェクトを持つことはできませんretain
。
このような状況で呼び出すことができないのは、型の変数がid
Objective-C オブジェクトを指していない場合だけです。これは間違いです。これを行わないでください。
NSObject から継承するすべてのオブジェクトにはrespondsToSelector:
メソッドがあります。(ドキュメンテーション)
したがって、次のように書くことができます。
if ([idParameter respondsToSelector:@selector(retain)])
someProperty = [idParameter retain];