8

名前付け方法のアップルスタイルのガイドには、「使用しない」と「受信者の属性であるキーワードをリンクする」の両方があります。方法が2つの別個の動作を記述している場合は、「使用する」および「リンクする」を選択します。多くの場合、これらの条件はどちらも適用されません。たとえば、私は何らかの作業を行い、ターゲットが完了したらそれをセレクタに呼び出す機能を持っているとしましょう。このObjective-Cのメソッド名に「and」を使用するのはいつですか?

- (void)findObjectsInBackgroundWithTarget:(id)target andSelector:(SEL)selector; 

又は本この例で

- (void)findObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector; 

命名されなければならない名前を付ける必要があり、セレクタとターゲットはなく、受信機のある属性を介して、関連しています。同様の例は、特定の属性を持つオブジェクトを取得することですが、そのオブジェクトはメソッドの受信者ではありません。この関数は

+ (Thing *)getThingWithName:(NSString *)name andId:(NSString *)thingId; 

またはこの

+ (Thing *)getThingWithName:(NSString *)name id:(NSString *)thingId; 

名前を付ける必要がありますする必要があります私は、これはマイナーなもののように見えるかもしれません知っているが、誰もが予想したスタイルを使用してうれしいです。

+1

これは答えではありませんので、私はコメントとして残しておきます。ターゲット/セレクタの例では、多くのライブラリのセレクタパラメータを「アクション」と呼びます。しかし、それはあなたの質問を一般的な点として無効にしません。 – iandotkelly

+0

ターゲット/アクションの語彙は、主にUI中心のコード(NS/UIResponderやNS/UIControlなど)に使われていると思います。セレクタは上記のようなコールバック動作に適しているようです(NSNotificationのように)。 –

+1

メソッド名のスタイルについて質問しているので、 'get ...'はCocoaで特別な意味を持ちます。一般的な "getter"メソッドでは使用されませんが、ポインタへのポインタを取得し、参照によってオブジェクトを返すメソッドに対してのみ使用されます。たとえば、['[NSArray getObjects:range:]'](http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/)を参照してください。 doc/uid/20000137-BABBGGHJ)。 –

答えて

7

Appleの言うところによると、あなたのメソッドの名前がメソッドの動作を記述している場合、つまり "-(void)doThisAndThat"の場合にのみ "and"を使用する必要があります。したがって、両方の例でメソッド名。

+0

そして、デザインの観点からは、アップルが説明しているようにメソッド名に "and"を使用すると、結束の欠如とみなすことができます。 – reinaldoluckman

関連する問題