2009-06-06 13 views
9

Przeglądam przykładowy kod, a czasami Apple nazywa pliki xib ClassNameView, a czasami ClassNameViewController. ClassName jest zawsze UIViewController lub UITableViewController, co sprawiło, że zastanawiałem się, jaką konwencję zastosować przy nadawaniu nazwy Xib. Sądzę, że View, ponieważ nie jest to naprawdę ViewController, ale ciekawa, co to jest konwencjalub co najmniej konwencje nazewnicze dla Xibs.Konwencje nazw dla xibs

+1

To także mnie dezorientuje. Mam nadzieję, że inni będą nadal dzwonili tutaj, ponieważ widzę argumenty uzasadniające * oba * style. to jest dokument IB, więc jest to ** widok **, prawda? Ale z drugiej strony właściciel jest zazwyczaj ** kontrolerem widoku **, a stalówka może zawierać * wiele * widoków ... Jestem obecnie w środku obozu drogowego, szukając przekonywującego argumentu, by przyciągnąć mnie w jedną stronę lub drugi ... – Meltemi

Odpowiedz

2

Używam ClassNameView, ponieważ xib reprezentuje widok, a nie kontroler widoku. Nie sądzę, że istnieje ogólnie przyjęta konwencja.

+1

Nie znalazłem też ogólnie przyjętej konwencji. Jednak przeczytałem ten wpis na blogu pod adresem http://www.cimgf.com/2009/05/11/magical-iphone-view-controllers/, który mówi, że używając init (nie initWithNibName) zakłada, że ​​stalówka ma nazwę ClassNameView. Prawdopodobnie pójdę z Viewem, ponieważ tak jak powiedziałeś henning, to nie jest kontroler widoku. – baalexander

1

Generalnie używam ClassNameViewController, ponieważ ustawiłem właściciela pliku na tę klasę i wydaje się dziwne, że nazwa tego pliku jest po czymś, co jest pod-obiektem obiektu, który reprezentuje stalówka. Podobnie jak ty, widziałem to w obu przypadkach w przykładowym kodzie i widziałem post na blogu o Cocoa jawnie szukający ClassNameView w niektórych przypadkach, ale nie miałem żadnych problemów przy użyciu ClassNameViewController.

3

Cocoa Touch obsługuje obie konwencje, z preferencją dla krótszej formy ClassNameView, zgodnie z procesu ładowania nib opisanym poniżej, gdy nazwa stalówka nie jest określony (od the UIViewController documentation, under nibName):

Konkretnie, to wygląda (w zamówienie) dla pliku nib z jedną z następujących nazw:

  1. Jeśli nazwa widoku klasy kontroler kończy się słowem „Controller”, jak w MyViewController, szuka pliku nib którego nazwa MATC hes the nazwa klasy bez słowa "Controller", jak w MyView.nib.

  2. Wygląda na dla pliku końcówki, którego nazwa jest zgodna z nazwą kontrolera widoku . Na przykład, jeśli nazwa klasy to MyViewController, wygląda ona na dla pliku MyViewController.nib.

Tak jak inne powiedzieć, że jest to kwestia preferencji! Osobiście lubię krótszą wersję, ale widzę logikę w obu.