Кодирование значения ключа
Кодирование значения ключа является механизмом для того, чтобы косвенно получить доступ к атрибутам объекта и отношениям с помощью идентификаторов строки. Это подкрепляет или связано с несколькими механизмами и технологиями, особенными для программирования Какао, среди них Базовые Данные, приложение scriptability, технология привязки и функция языка заявленных свойств. (Scriptability и привязка являются определенными для Какао на OS X.) Можно также использовать кодирование значения ключа для упрощения кода программы.
Свойства объектов и KVC
Центральный к кодированию значения ключа (или KVC) общее понятие свойств. Свойство относится к модулю состояния, которое инкапсулирует объект. Свойство может быть одним из двух общих типов: атрибут (например, name
, title
, subtotal
, или textColor
) или отношение к другим объектам. Отношения могут быть или к - один или к - многие. Значение для к - многие, отношение обычно является массивом или набором, в зависимости от того, упорядочивается ли отношение или не упорядочивается.
KVC определяет местоположение свойства объекта через ключ, который является идентификатором строки. Ключ обычно соответствует имени метода доступа или переменной экземпляра, определенной объектом. Ключ должен соответствовать определенным соглашениям: Это должно быть закодированным ASCII, начаться со строчной буквы и не иметь никакого пробела. Ключевой путь является строкой разделенных от точки ключей, использующейся для указания последовательности свойств объектов для пересечения. Свойство первого ключа в последовательности относительно конкретного объекта (employee1
в следующей схеме), и каждый последующий ключ оценен относительно значения предыдущего свойства.
Создание класса совместимый KVC
NSKeyValueCoding
неофициальный протокол делает KVC возможный. Два из его методов —valueForKey:
и setValue:forKey:
— особенно важны, потому что они выбирают и устанавливают значение свойства, когда дали его ключ. NSObject
обеспечивает реализацию по умолчанию этих методов, и если класс совместим с кодированием значения ключа, он может полагаться на эту реализацию.
То, как Вы делаете свойство KVC совместимым, зависит от того, является ли то свойство атрибутом, к - одним отношением, или к - многие отношение. Для атрибутов и к - отношения, класс должен реализовать по крайней мере одно из следующего в данном порядке предпочтения (ключ относится к ключу свойства):
Класс имеет заявленное свойство с ключом имени.
Если свойство является непостоянным, это реализует методы доступа, названные ключом и
set
Ключ:
. (Если свойство является булевым атрибутом, метод доступа метода get имеет формуis
Ключ.)Это объявляет переменную экземпляра ключа формы или
_
ключ.
При реализации соответствия KVC для к - многие отношение является более сложной процедурой. Обратитесь к документу, окончательно описывающему кодирование значения ключа для изучения, какова эта процедура.