Что такое владелец файла и первый ответчик в iOS - Xcode?
Что такое владелец файла и первый ответчик в iOS - Xcode?
Ответы (1)
Владелец файла — это созданный экземпляр объекта runtime, который владеет содержимым вашего пера и его выходами/действиями при загрузке пера. Это может быть экземпляр любого класса, который вам нравится — взгляните на вкладку идентификации на палитре инструментов.
Владелец файла является основным связующим звеном между кодом вашего приложения и содержимым файла пера.
Например, предположим, что у вас есть подкласс UIViewController с IBOutlet для UILabel. В построителе интерфейса владелец файла будет установлен в тот же класс, что и ваш UIViewController. Когда ваш наконечник загружается во время выполнения, привязки выходов и действий, определенных в вашем наконечнике, привязываются к экземпляру вашего контроллера представления, поскольку ваш контроллер представления является владельцем.
Перья загружаются с помощью:
[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];
Параметр владельца особенно важен. Это экземпляр среды выполнения класса, которому принадлежит содержимое (выходные точки, действия и объекты) загружаемого пера.
Надеюсь, это ясно. Чтобы увидеть это в действии, создайте новый проект iPhone с контроллером представления. Откройте файл Nib и взгляните на вкладку идентификации.
Первый ответчик — это просто первый объект в цепочке ответчиков, который может реагировать на события. Цепочка респондентов — это набор (или, точнее, иерархия) объектов времени выполнения, которые могут реагировать на событие. Например, предположим, что у вас есть окно с представлением, и в этом представлении есть текстовое поле.
Если это текстовое поле имеет фокус, оно называется первым респондентом в цепочке. Поэтому, если вы отправляете сообщение первому ответившему, оно сначала будет отправлено в текстовое поле. Если текстовое поле не может обработать сообщение, оно будет отправлено следующему ответчику. И следующее. И следующее, пока вы не дойдете до конца цепочки респондеров или что-то не поглотит событие (iirc).
О цепочке респондентов стоит прочитать — для получения дополнительной информации перейдите в документацию Apple.