2

一般的な NSObject メソッド「+alloc」と「-init」をマージする NSObject のサブクラスのメソッドを作成しています。これは、クラスのインスタンスを作成するときに時間を節約するためです。

(このサブクラスも抽象クラスです。NSObject をサブクラス化する代わりのようなものなので、メソッドはサブクラス化に対応している必要があります。)

メソッド「make」の場合、これが最善の書き方ですか?

+(id)make
{
    id newObject = [[self.class alloc] init];

    return newObject;
}

より良い方法があるとすれば、それはどのようなものでしょうか?

ありがとう

4

4 に答える 4

6

より良い方法は+new、すでに存在する を使用することです:)

于 2012-07-30T17:45:20.843 に答える
3

あなたは[self.class new]呼び出すのと同じことを使うことができます[[self.class alloc] init]

于 2012-07-30T17:45:31.867 に答える
2

私はnew本当にうまくいくと思います。

SomeObject *object = [SomeObject new];
于 2012-07-30T17:45:57.070 に答える
1

簡単にするために:

id newObject = [[self alloc] init];

次のように置き換えることができます。

id newObject = [self new];

しかし、多くの定義済みオブジェクトでは、他の初期化子を使用できることを思い出してください。

...alloc] init...]

構造。

于 2012-09-01T23:01:13.427 に答える