2009-04-17 13 views
14

Kiedy tworzę przykładową aplikację (np. Zaczynam z aplikacją paska kart lub coś podobnego), w moim pliku MainWindow.xib widzę 5 elementów na liście - Właściciel pliku, Pierwszy respondent, Delegat aplikacji , Window i kontroler paska kart.Generator i elementy interfejsu iPhone'a

Jeśli utworzę inny plik .xib, utworzę dla niego delegata i ustawę tego właściciela pliku na mojego nowego delegata, którego właśnie utworzyłem, NIE widzę "NewDelegateFile" na liście ... obiektów (?) dla tego .xib.

To nie ma dla mnie sensu i myślę, że jest to ogromna część tego, dlaczego nie wpadam w tak szybki rozwój iPhone'a.

Czy ktoś chce poświęcić trochę czasu, aby wyjaśnić mi tę szczególną właściwość?

+1

Zadałem już prawie to samo pytanie http://stackoverflow.com/questions/1911916/placeholder-objects-in-interface-builder. Odpowiedzi te powinny dostarczyć więcej szczegółów i być mniej kłopotliwe. – Casebash

Odpowiedz

24

Właściciel pliku nie jest rzeczywistym obiektem w pliku Xib. Jest to obiekt proxy. Reprezentuje obiekt, który stanie się właścicielem Xib, gdy zostanie załadowany. Pierwszy respondent i delegat aplikacji są również pełnomocnikami. Pierwszy responder to obiekt znajdujący się obecnie na szczycie łańcucha responderów. Gdy zmienia się stan aplikacji, inny obiekt może być pierwszym respondentem. Ten obiekt proxy służy do łączenia elementów takich jak menu Plik-> Zapisz z dowolnym obiektem odpowiedzialnym za obsługę w danym momencie.

Delegat aplikacji jest rzeczywistym obiektem. Uruchamia się, gdy załadowany jest Xib. Jak widać w Interface Builder, jest on połączony z gniazdem delegata właściciela pliku. Aplikacja ładuje plik MainWindow.xib, a więc jest właścicielem pliku.

Pozostałe pliki xib są zwykle ładowane przez obiekt uczestnika. Ten obiekt delegata jest właścicielem pliku. Ale sam delegat jest tworzony z kodu. Nie jest ładowany z xib. Dlatego nie jest pokazywany w Konstruktorze interfejsu.

Pliki XIB zawierają rzeczywiste serializowane obiekty. Właściciel pliku i pierwszy obiekt odpowiadający są wyjątkami. Reprezentują one inny, już istniejący obiekt.

Właściciel pliku (często plik UIViewDelgate w plikach innych niż MainWindow.xib) to kurczak. Xib to jajko. Sam kurczak nie jest zawarty w jajku.

Trochę długo. Mam nadzieję, że to pomoże.

+1

Nie ignorowałem tej odpowiedzi. To zajęło mi dni zabawy i czytania w kółko, aby to zrozumieć. I myślę, że teraz to robię. Dzięki wielkie. To trochę niespójne z tym, jak mój umysł myśli, że tak powinno być, ale wciąż będę starał się myśleć w ten sposób. Dziękuję bardzo za twoją odpowiedź. –

Powiązane problemy