2011-07-28 15 views
8

Adlandırma yöntemleri için Apple stil kılavuzları, "Alıcının özellikleri olan anahtar kelimeleri bağlamak için" ve "kullanmayın" ifadelerini kullanır. " ve "Yöntem iki ayrı eylemi açıklarsa, bunları bağlamak için" ve "kullanın." Çoğu durumda, bu koşullardan hiçbiri geçerli değildir. Örneğin, bir iş yapmak için bir işlevim olduğunu ve bittiğinde bir hedef üzerinde bir seçici çağırdığımı varsayalım. Bu Objective-C yöntem adlarında "ve" ne zaman kullanmalıyım?

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

adlı olmalıdır veya bu o örnekte
- (void)findObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector; 

adlı olmalıdır, selektör ve hedef ile ilgili değil, alıcısının olma nitelikleri aracılığıyla edilir. Benzer bir örnek, belirli özelliklere sahip bir nesneyi almaktır, ancak nesne, yöntemin alıcısı değildir. Bu fonksiyon
+ (Thing *)getThingWithName:(NSString *)name andId:(NSString *)thingId; 

olmalı veya bu bu küçük bir şey gibi gözükebilir biliyorum ama herkesin beklediği stil kullanmak güzel
+ (Thing *)getThingWithName:(NSString *)name id:(NSString *)thingId; 

adlı olmalıdır.

+1

Bu bir cevap değil, bu yüzden yorum olarak bırakacağım. Hedef/seçici örneği için birçok kütüphanedeki seçim parametresine 'eylem' denir. Ancak bu, sorunuzu genel bir nokta olarak geçersiz kılmaz. – iandotkelly

+0

Hedef/eylem kelime bilgisinin çoğunlukla UI merkezli kod için kullanıldığını düşünüyorum (örneğin, NS/UIResponder ve NS/UIControl gibi). Seçici, yukarıdaki gibi geri arama davranışı için uygun görünmektedir (NSNotification'da olduğu gibi). –

+1

Yöntem adı stili hakkında soru sorduğunuz için: 'get ...' Cocoa'da belirli bir anlamı vardır; genel "getter" yöntemleri için kullanılan _not_, ancak yalnızca bir işaretçi-işaretçisi alan ve bir nesneyi başvuruyla döndüren yöntemler için kullanılır. Bkz. Örneğin, ['[NSArray getObjects: range:]'] (http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/ doktor/uid/20000137-BABBGGHJ). –

cevap

7

Apple'ın söylediğine göre, "ve" yalnızca yönteminizin adı, yöntemin yaptığı eylemi açıklıyorsa, yani -(void)doThisAndThat, yani her iki örneğinizde de yöntem adlarında "ve" kullanmamanız gerekir. .

+0

Bir tasarım perspektifinde, Apple'ın açıkladığı gibi bir yöntem adında "ve" kullanın, uyumsuzluk olarak düşünülebilir. – reinaldoluckman

İlgili konular