8

私が扱ってきたほとんどの言語では、コンビニエンスメソッドと呼ばれるものがあります。これは、このメソッドが非常に頻繁に実行される小さなタスクを実行することを意味します。したがって、このメソッドを使用する方が便利です。

Objective-Cでは、この定義は当てはまりますか?それとも、一般的に、ビルド済みオブジェクトを返すクラスメソッドを記述するためにのみ使用されますか?元。[NSString stringWithContentsOfFile:...]

これは単なる好みのことですか、それともこれらの用語の明確で迅速な定義がありますか?

乾杯、ステファン

4

2 に答える 2

10

あなたが話しているのは、実際には、Objective Cの「コンビニエンスコンストラクター」です(これは、C ++ / Java / C#の意味でのコンストラクターではなく、実際にはオブジェクト初期化子/ファクトリメソッドですが、 「コンビニエンスコンストラクタ」と呼ぶ規則)。Obj Cの「コンビニエンスコンストラクター」は、特定のパラメーターを受け取るクラスのコンストラクター/初期化子/ファクトリメソッドを作成するための規則またはパターンです。このパターンには、カスタムクラスが組み込み型にうまく適合するように、従う必要のあるいくつかの特別な規則(コンストラクター内の新しいオブジェクトの自動解放など)もあります。

詳細については、このページ(少し下)を参照してください:http: //macdevcenter.com/pub/a/mac/2001/07/27/cocoa.html? page = 3

「コンビニエンスメソッド」に関しては、この特定の用語はObjectiveCでは特別な意味を持ちません。ObjCでは任意のタイプのコンビニエンスメソッドを作成できます。特別な意味を持つのは「コンビニエンスコンストラクター」だけです。

于 2011-02-23T20:47:01.133 に答える
4

私の知る限り、「コンビニエンスメソッド」とは、基本的にここで定義した意味を意味します。つまり、使用頻度が高いため、より複雑な一連の呼び出しを置き換える単一のメソッドまたは関数です。

Objective-Cでは、新しいインスタンスを作成するための「通常の」方法は、の線に沿ったものですNSSomething * mySomething = [[[NSSomething alloc] initWithParam:... andParam:...] autorelease]。多くのクラスは、これらの3つのステップを単純化する便利なコンストラクターを提供します(実際、ほとんどの場合、文字通りまったく同じことを実行しますが、クラスメソッド呼び出しの背後にラップされます)。

于 2011-02-23T20:45:56.727 に答える