Co to jest właściciel pliku i osoba odpowiadająca w systemie iOS - Xcode?

Odpowiedzi:

170

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.

dannywartnaby
źródło
1
@dannywartnaby: szczegółowy opis !! +1
Jayprakash Dubey
1
świetne wyjaśnienie!
TMin