Coding Guidelines for Cocoa to świetne źródło odpowiedzi na wszelkie pytania dotyczące nazewnictwa. Moja odpowiedź jest jak najbardziej oparta na tym.
Metoda Init
Metoda init wygląda dobrze.
- (id) initWithName:(NSString *) name;
Klasa Metoda
Sposób klasa wygląda dobrze.
Metody klas mogą być również używane do tworzenia instancji obiektu.W tym przypadku Apple API mają zazwyczaj początek metody z nazwą klasy jak buttonWithType:
metody UIButton
„s, która ma podpis:
+ (id)buttonWithType:(UIButtonType)buttonType
instancji Formy
dobrym źródłem kodowania konwencje dla metody można znalezione pod General Rules.
Poniższa metoda powinna upuść "and"
s:
- (void) methodWithApple:(NSString *) apple andOrange:(NSString *) orange
andMango:(NSString *) mango // BAD
połączyć słowa kluczowe, które są atrybutami odbiornika nie należy używać „i”.
- (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes;
prawo
- (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes;
źle
Podpis powinien wyglądać bardziej jak następuje:
- (void) methodWithApple:(NSString*)apple orange:(NSString*)orange
mango:(NSString*)mango // GOOD
Wreszcie myślę, istnieje kilka ulepszeń, które mogą być wykonane na tym, co wydaje się być metoda delegat:
- (void) statusWasChanged:(id)sender // Not horrible, but not ideal
pierwsze poprawa jest dodanie nazwę klasy do metody.
Zacznij nazwę identyfikując klasę obiektu, który jest wysyłającego komunikat:
- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(int)row;
- (BOOL)application:(NSApplication *)sender openFile:(NSString *)filename;
drugie poprawa jest użycie "DidChange"
zamiast "WasChanged"
.
Use „nie” lub „będzie” dla metod, które są wywoływane powiadomić delegata, że coś się stało lub ma się wydarzyć.
- (void)browserDidScroll:(NSBrowser *)sender;
- (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window;
trzecie poprawa jest silnie odlewania parametr nadawcy. Nie posiadam dokumentacji na poparcie tego, jednak wszystkie przykłady podane w przykładach wydzielają to zachowanie. Zwróć uwagę na (NSBrowser*)sender
i (NSWindow*)window
w powyższym przykładzie kodu pobranego bezpośrednio z docs.
Mając to na uwadze, metoda delegat powinien wyglądać bardziej jak:
- (void) senderClassNameStatusDidChange:(SenderClassName*)sender // Good
Jeśli nadawca była osobą obiekt to będzie wyglądać:
- (void) personStatusDidChange:(Person*)sender // Good
Jedna uwaga to ty nie powinny zawsze używać "did" w metodach delegowanych.Chociaż można użyć „nie” lub „będzie” dla metody, które są powołane do zapytać delegata coś zrobić w imieniu innego obiektu, „powinno” preferowane
jest.
- (BOOL)windowShouldClose:(id)sender;
Dla 'initWithName' upewnij się, że rozumiesz jak ARC będzie traktować ten (tj zwracania zatrzymany Object) – Thilo
Twój konwencja nazewnictwa jest dobre .. –