Co to jest właściciel pliku i osoba odpowiadająca w systemie iOS - Xcode?
źródło
Co to jest właściciel pliku i osoba odpowiadająca w systemie iOS - Xcode?
Właściciel pliku jest instancją obiektu wykonawczego, który jest właścicielem zawartości twojego pliku nib i jego wyjść / akcji, gdy ten plik jest ładowany. Może to być instancja dowolnej klasy, którą lubisz - spójrz na kartę tożsamości w palecie narzędzi.
Właściciel pliku to główne łącze między kodem aplikacji a zawartością pliku nib.
Załóżmy na przykład, że masz podklasę UIViewController z IBOutlet dla UILabel. W konstruktorze interfejsu właściciel pliku zostanie ustawiony na tę samą klasę, co Twój UIViewController. Gdy twój nib jest ładowany w czasie wykonywania, powiązania gniazd i akcji zdefiniowanych w twoim nib są powiązane z instancją twojego kontrolera widoku, ponieważ kontroler widoku jest właścicielem.
Stalówki są ładowane za pomocą:
[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];
Szczególnie ważny jest parametr właściciel. Jest to instancja środowiska wykonawczego klasy, która jest właścicielem zawartości (gniazd, akcji i obiektów) ładowanej końcówki.
Mam nadzieję, że to jasne. Aby zobaczyć, jak to działa, utwórz zupełnie nowy projekt iPhone'a z kontrolerem widoku. Otwórz plik Nib i spójrz na kartę tożsamości.
Pierwsza osoba odpowiadająca to po prostu pierwszy obiekt w łańcuchu odpowiedzi, który może reagować na zdarzenia. Łańcuch odpowiedzi to zbiór w czasie wykonywania (a dokładniej hierarchia) obiektów, które mogą odpowiedzieć na zdarzenie. Załóżmy na przykład, że masz okno z widokiem, w którym znajduje się pole tekstowe.
Jeśli to pole tekstowe ma fokus, jest znane jako pierwsza osoba odpowiadająca w łańcuchu. Jeśli więc wyślesz wiadomość do pierwszej osoby, zostanie ona najpierw wysłana do pola tekstowego. Jeśli pole tekstowe nie obsługuje wiadomości, zostanie ona wysłana do następnego respondenta . I następny. I dalej, aż dojdziesz do końca łańcucha odpowiedzi lub coś pochłonie zdarzenie (iirc).
Warto przeczytać o łańcuchu odpowiedzi - zajrzyj do dokumentacji firmy Apple, aby uzyskać więcej informacji.