0

id パラメータを持つメソッドがあります。クラス内のプロパティとして id もあります。私の質問は init メソッドにあります。渡されたパラメーターを保持できるかどうかを判断できる方法があるので、次のようなことができます。

someProperty = [idParameter retain];

ありがとう

4

2 に答える 2

3

すべての Objective-C オブジェクト (つまり、NSObjectクラスから継承するもの、またはNSObjectプロトコルを実装するもの)はすべて実装しますretain。これはクラスによって実装されNSObject、プロトコルに必要なメソッドであるため、呼び出すことができない Objective-C オブジェクトを持つことはできませんretain

このような状況で呼び出すことができないのは、型の変数がidObjective-C オブジェクトを指していない場合だけです。これは間違いです。これを行わないでください。

于 2012-08-08T12:18:47.830 に答える
2

NSObject から継承するすべてのオブジェクトにはrespondsToSelector:メソッドがあります。(ドキュメンテーション)

したがって、次のように書くことができます。

if ([idParameter respondsToSelector:@selector(retain)])
    someProperty = [idParameter retain];
于 2012-08-08T12:10:20.083 に答える