Что такое владелец файла и первый ответчик в iOS - Xcode?

Что такое владелец файла и первый ответчик в iOS - Xcode?

Ответ 1

Владелец файла - это экземпляр, объект времени выполнения, который владеет содержимым вашего nib и его точек/действий при загрузке ниба. Это может быть экземпляр любого класса, который вам нравится, - посмотрите на вкладку идентификатора палитры инструментов.

Владелец файла является основной ссылкой между вашим кодом приложения и содержимым файла nib.

Например, у вас есть подкласс UIViewController с IBOutlet для UILabel. В построителе интерфейса владелец файла будет установлен в том же классе, что и ваш UIViewController. Когда ваш nib загружается во время выполнения, привязки выходов и действий, определенных в вашем nib, привязаны к экземпляру вашего контроллера представлений, так как ваш контроллер представления является владельцем.

Загружаемые нити загружаются с помощью:

[[NSBundle mainBundle] loadNibNamed:@"NibName" owner:nil options:nil];

Параметр владельца особенно важен. Это экземпляр среды выполнения класса, который владеет содержимым (выходы, действия и объекты) загружаемого nib.

Надеюсь, это ясно. Чтобы увидеть это на работе, создайте новый проект iPhone с контроллером вида. Откройте файл Nib и посмотрите вкладку идентификатора.

Первый ответчик - это просто первый объект в цепочке ответчиков, который может реагировать на события. Цепочка ответчика представляет собой коллекцию времени выполнения (или, точнее, иерархию) объектов, которые могут реагировать на событие. Например, рассмотрим, что у вас есть окно с представлением и в этом представлении есть текстовое поле.

Если это текстовое поле имеет фокус, он известен как первый ответчик в цепочке. Поэтому, если вы отправляете сообщение первому ответчику, оно сначала будет отправлено в текстовое поле. Если текстовое поле не может обработать сообщение, оно будет отправлено следующему ответчику. И следующий. И следующий, пока вы не дойдете до конца цепи ответчика, или что-то поглотило событие (iirc).

Цепочку-ответчик стоит прочитать о документации по удалению яблока для получения дополнительной информации.