Обеспечение соответствие KVC
Для класса, который будут считать KVC совместимый для определенного свойства, это должно реализовать методы, требуемые для valueForKey:
и setValue:forKey:
работать на то свойство.
Атрибут и к - одно соответствие отношения
Для свойств, которые являются атрибутом или к - одно отношение, это требует что Ваш класс:
Реализуйте названный метод
-<key>
,-is<Key>
, или имейте переменную экземпляра<key>
или_<key>
.Несмотря на то, что ключевые имена часто начинаются со строчной буквы, KVC также поддерживает ключевые имена, начинающиеся с прописной буквы, такой как
URL
.Если свойство является непостоянным, то оно должно также реализовать
-set<Key>:
.Ваша реализация
-set<Key>:
метод не должен выполнять проверку.Ваш класс должен реализовать
-validate<Key>:error:
если проверка является подходящей для ключа.
Индексированный к - многие соответствие отношения
Для индексируемого к - много отношений, соответствие KVC требует что Ваш класс:
Реализуйте названный метод
-<key>
это возвращает массив.Или назовите переменную экземпляра массива
<key>
или_<key>
.Или реализуйте метод
-countOf<Key>
и один или оба из-objectIn<Key>AtIndex:
или-<key>AtIndexes:
.Дополнительно, можно также реализовать
-get<Key>:range:
улучшить производительность.
Для непостоянного, индексированного упорядоченный - многие отношение, соответствие KVC требует что Ваш класс также:
Реализуйте один или оба из методов
-insertObject:in<Key>AtIndex:
или-insert<Key>:atIndexes:
.Реализуйте один или оба из методов
-removeObjectFrom<Key>AtIndex:
или-remove<Key>AtIndexes:
.Дополнительно, можно также реализовать
-replaceObjectIn<Key>AtIndex:withObject:
или-replace<Key>AtIndexes:with<Key>:
улучшить производительность.
Неупорядоченный - многие соответствие отношения
Для неупорядоченного к - много отношений, соответствие KVC требует что Ваш класс:
Реализуйте названный метод
-<key>
это возвращает набор.Или назовите переменную экземпляра набора
<key>
или_<key>
.Или реализуйте методы
-countOf<Key>
,-enumeratorOf<Key>
, и-memberOf<Key>:
.
Для непостоянного, неупорядоченного - многие отношение, соответствие KVC требует что Ваш класс также:
Реализуйте один или оба из методов
-add<Key>Object:
или-add<Key>:
.Реализуйте один или оба из методов
-remove<Key>Object:
или-remove<Key>:
.Дополнительно, можно также реализовать
-intersect<Key>:
и-set<Key>:
улучшить производительность.