Pytanie Konstruktor i elementy interfejsu iPhone'a


Kiedy robię przykładową aplikację (np. Zaczynam z aplikacją paska kart lub coś takiego), w moim pliku MainWindow.xib widzę 5 elementów wymienionych - Właściciel pliku, Pierwszy obiekt odpowiadający, Delegat aplikacji, Okno i Kontroler paska kart.

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

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

Czy ktoś ma ochotę poświęcić czas na wyjaśnienie mi tej osobliwości?


14
2018-04-17 19:18


pochodzenie


Znowu zadałem prawie to samo pytanie stackoverflow.com/questions/1911916/.... Odpowiedzi te powinny dostarczyć więcej szczegółów i być mniej kłopotliwe. - Casebash


Odpowiedzi:


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.

Inne pliki xib są zwykle ładowane przez obiekt delegata. 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.


24
2018-04-17 21:06



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ź. - Matt Dawdy