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