Для чего нужен объект, с которым я связан? - PullRequest
0 голосов
/ 27 февраля 2009

Когда я использую Интерфейсный Разработчик> Инспектор> Привязки, чтобы установить привязку для одного из моих элементов представления (то есть текстового поля), тогда я должен указать объект, к которому будет привязан этот элемент представления.

Итак, мне интересно, какую именно работу с этим объектом я указываю в "Привязать к:"? Я предполагаю, что Interface Builder автоматически создает некоторые методы, которые выполняют всю эту работу по синхронизации. Это верно?

И что это значит, когда я "Bind to: File's Owner"? Это мой файл с методом main внутри?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2009

… что именно является заданием этого объекта, которое я указываю в «Привязать к:»?

Вы связываете свой взгляд с вашим контроллером. Контроллер владеет моделью; ключ контроллера, к которому вы привязываете, - это имя свойства, которое обслуживает некоторую часть этой модели. Объекты модели имеют свои собственные свойства, и вы можете (в некоторых случаях должны) указать путь к ключу модели вместе с ключом контроллера.

Я предполагаю, что Interface Builder автоматически создает некоторые методы, которые выполняют всю эту работу по синхронизации. Это верно?

Нет. IB никогда не создает методов. Система Bindings выполняет все эти функции синхронизации, и она уже существует. IB просто вызывает его (в частности, он вызывает метод bind::::, о котором я упоминал в мой ответ на ваш другой вопрос ).

И что это значит, когда я "Привязка к: Владельцу файла"?

Владелец файла - это объект, которому принадлежат все объекты верхнего уровня в файле пера. Владельцем пера MainMenu является объект приложения (NSApp). В основанном на документе приложении объект документа загрузит перо, содержащее окно документа; как таковой, он является владельцем окна вместе с любыми другими объектами верхнего уровня в этом наконечнике.

Это мой файл с методом main внутри?

Нет такого файла, потому что такого метода нет. Существует main функция , но это функция, а не метод объекта. Там нет никакого объекта, поэтому вы не можете привязать к нему.

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

Если вы спрашиваете, какому файлу принадлежит, это файл nib (или, точнее, его содержимое, но «владелец содержимого файла» немного длинен).

* Ну, за исключением символов отладки, которые идентифицируют имя файла и номер строки каждой инструкции.

0 голосов
/ 27 февраля 2009

Объект, к которому вы привязываетесь, должен иметь значение ключа, кодирующее и значение ключа, соответствующее совместимости. Привязки - это просто оболочка, которая использует обе эти техники таким образом, что приводит к гораздо меньшему количеству кода.

Если вы действительно хотите знать, как это работает, в блоге Майка Эша есть запись о том, как работает KVO. .

Я не знаю, хотите ли вы так много подробностей. Я предлагаю вам прочитать вступление к привязкам cocoadevcentral.com . Это довольно неплохо объясняет их.

На ваш конкретный вопрос о владельце файла Apple пишет:

У каждого приложения Какао есть основной кончик файл, который содержит меню приложений и возможно, одно или несколько окон. NSApp является владельцем файла основного пера файл. Когда приложение запускается, NSApp загружает основной файл пера, разархивировать его, и отображает меню и начальные окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...