Dlaczego powinienem ustawić właściwość klasy właściciela pliku, a nie tożsamość klasy mojego obiektu niestandardowego, która jest wyświetlana w stalówce i nawiązywać z nią połączenia? Co się stanie, jeśli ustawię właściciela pliku na zero? Dla mnie wszystko działa dobrze z właścicielem pliku zerowego, więc jaka jest szacunek w związku z nim?Jaka jest potrzeba właściciela pliku w plikach xcode xib? Czy mogę zrobić to samo bez właściciela pliku?
Odpowiedz
stalówkę reprezentuje zarchiwizowany wykres obiektu. Możesz go załadować, a ten wykres obiektów zostanie odtworzony. Rzecz, zazwyczaj chcesz/potrzebujesz nowo załadowanego wykresu obiektów, który ma zostać podłączony do już istniejącego wykresu obiektu twojego programu. Nie chcesz, żeby to było rozdzielone, odłączone od wszystkiego innego.
Istnieje kilka sposobów, które nowo załadowany wykres obiektów można połączyć z resztą wykresu obiektu programu. Jednym ze sposobów jest zestaw obiektów proxy dostępnych w NIB. Jest jeden dla obiektu aplikacji. Kolejnym takim obiektem proxy jest Właściciel pliku. Obiekt proxy to element, który ma reprezentację w NIB, ale w rzeczywistości nie jest zawarty w NIB. W przeciwieństwie do innych obiektów w NIB, obiekty reprezentowane przez proxy nie są tworzone, gdy NIB jest załadowany, istnieją przed załadowaniem NIB. Proxy umożliwiają połączenia między tymi wcześniej istniejącymi obiektami i obiektami w NIB. W ten sposób nowy wykres obiektów z NIB może zostać podłączony do istniejącego wykresu obiektu twojego programu.
Menu główne NIB jest nietypowe. Jest on automatycznie ładowany podczas uruchamiania aplikacji przez Cocoa, co oznacza, że nie ma (nie może być, naprawdę) zbyt wiele wcześniejszych obiektów. Ten NIB zwykle zawiera również instancję delegata aplikacji, która jest rodzajem kontrolera koordynującego. Zwykle jednak inne typy NIB nie zawierają kontrolerów koordynujących. (Zawierają kontrolery pośredniczące, takie jak NSArrayController
, ale to jest inne.) Zamiast tego, kontrolery koordynujące są zazwyczaj tworzone w kodzie i często są odpowiedzialne za ładowanie NIB.
Na przykład można użyć NSWindowController
jako kontrolera koordynującego dla okna. Okno zostanie zdefiniowane w NIB. Kontroler okien będzie instancjonowany w kodzie - w zależności od tego, który kod zdecyduje, że okno ma zostać utworzone - i załaduje NIB. Byłby także właścicielem pliku NIB. Zarządzałby oknem i obiektami najwyższego poziomu NIB.
Jeśli ustawiasz właściciela pliku na nil
, to a) prawdopodobnie masz do czynienia z bardzo prostymi NIBs w tym punkcie, oraz b) możesz być nieszczelnym obiektem najwyższego poziomu z ładowanych NIB.
Właściciel pliku to plik zawierający wszystkie IBOutlety i IBActions dla tego widoku. Na przykład, jeśli masz klasę "ViewController" i zawiera ona IBOutlet UIButton *button
i -(IBAction)changeViewWhenButtonPressed: (id) sender
, jedynym sposobem podłączenia gniazdka i działania jest ustawienie "ViewController" jako właściciela pliku widoku.
Jestem przekonany, że tożsamość klas jest równoznaczna z właścicielem pliku.
Również te linki mogą być pomocne:
What are File Owner and First Responder in iPhone SDK - xCode?
Dzięki za szybką odpowiedź, ale jestem nadal na poziomie 1 i nie mogę głosuj w górę .. –
Gdybyś mógł odpowiedzieć na mój komentarz na temat Ken, byłoby wspaniale :) –
"Właściciel pliku" to sposób, w jaki obiekty w stalowniku mogą odnosić się do obiektów poza stalówką i odwrotnie. (Istnieją również bardziej złożone sposoby, aby to zrobić, ale nie są one używane tak często.Jeśli nie musisz tego robić, nie musisz używać właściciela pliku.
W przypadku aplikacji głównej właścicielem pliku jest obiekt Application. Możesz nie mieć potrzeby nawiązywania z nim połączeń, jeśli cała logika aplikacji znajduje się w klasie niestandardowej również utworzonej w stalówce i jeśli użyjesz "pierwszej odpowiedzi" dla wiadomości akcji wysłanych do aplikacji. To jest wporządku.
Jeśli masz okno dokumentu lub okienko popover lub coś takiego, często właścicielem pliku jest obiekt, który jest przeglądany, dlatego warto dołączyć do niego interfejs użytkownika. Możesz ładować tę samą stalówkę wiele razy, każdą "posiadaną" przez inną instancję tej klasy - inny dokument lub sprawdzony obiekt lub coś podobnego.
(Zasadniczo, właściciel pliku jest po prostu cokolwiek obiekt został przekazany do „właściciela:”. Parametr w metodzie stalówka ładowania)
- 1. plik ustawień właściciela pliku XIB
- 2. Ikona właściciela pliku
- 3. Jaka jest różnica między klasą niestandardową a ustawieniem właściciela pliku w pliku Xib?
- 4. Sprawdzanie uprawnień właściciela pliku
- 5. Czy istnieje polecenie zwrócenia właściciela pliku?
- 6. Zmiana właściciela pliku podczas kopiowania
- 7. Podłączanie właściciela pliku do wyświetlenia problemu
- 8. Pobieranie/ustawianie właściciela pliku w C#
- 9. Znajdowanie właściciela i grupy pliku (jako ciąg)
- 10. Identyfikator właściciela ASP.NET Core 2.0 bez tożsamości
- 11. WPF Uzyskaj UserControl właściciela
- 12. Zmiana właściciela tabeli
- 13. Czy mogę zaktualizować identyfikator właściciela kontaktu za pomocą LINQ?
- 14. Okno właściciela bloku Java FX
- 15. Get właściciela menu kontekstowego w kodzie
- 16. Jak ustalić właściciela pliku w systemie Windows przy użyciu Pythona bez pywin32
- 17. Iframe bez src - Czy mogę to zrobić?
- 18. Czy istnieje sposób na zmianę właściciela JDialog?
- 19. Jak określić właściciela procesu w języku C#?
- 20. Jak zmienić właściciela tabeli w bazie danych
- 21. Ustaw rozmiar widoku w pliku NIB/XIB
- 22. Jak zmienić właściciela bazy danych w sql?
- 23. uzyskiwanie atrybutów twórcy plików/właściciela w Javie
- 24. Nie można utworzyć pliku iPhone Xib z Xcode 6
- 25. Jaka jest potrzeba wywołania() w dziedziczeniu prototypowym?
- 26. Zmiana właściciela wszystkich obiektów w bazie danych
- 27. git: zmienić styl (białe znaki) bez zmiany właściciela/winy?
- 28. Konsola programisty dla Androida - zmiana właściciela aplikacji
- 29. xcode: wyszukiwanie według pliku
- 30. Jak zmienić właściciela bazy danych SQL Server?
Po lewej stronie budowniczego interfejsu mamy 2 sekcje. Symbole zastępcze i obiekty. Lesty mówią, że tworzymy klasę MyView w stalówce. Ta klasa pojawia się w sekcji Obiekty i mogę tworzyć połączenia typu outlet-action ze stalówką. Mogłem zrobić te same połączenia, jeśli uczyniłem klasę właściciela pliku MyView. Jaka jest ocena tych dwóch sytuacji? Dzięki –
Byłoby bardzo nietypowe, aby widok był właścicielem NIB. Będziesz także wykonywać połączenia dla dwóch różnych obiektów. To tak, jakbyś zapytał: "Mogę ustawić właściwości jednego obiektu, mogę też ustawić właściwości innego obiektu. Jaka jest różnica?" Jeśli tworzysz połączenia dla widoku, który faktycznie znajduje się w NIB, to jest to obiekt, który się łączy. Jeśli nawiązujesz połączenia z właścicielem pliku, to obiekt, który jest określony jako właściciel NIB po załadowaniu, jest połączony. Właścicielem oczywiście nie może być żaden z obiektów w NIB. –