2014-03-29 4 views
0

Из документации Apple, я наткнулся на следующее:Key Value Coding осветление

Установка значения с использованием ключевых путей не то же самое, как установка их с помощью Objective-C свойства. Вы не можете использовать обозначение свойств для установки значений преобразования . Вы должны использовать метод setValue: forKeyPath: с предшествующими строками пути ключа.

С моей точки зрения, у нас должны быть свойства наших иваров, чтобы использовать KVC.

Но из приведенного выше пункта, кажется, сказать иначе:

Установка значения с использованием ключевых путей не то же самое, как установка их с помощью Objective-C свойства. Вы не можете использовать обозначение свойства, чтобы установить значения преобразования.

Может кто-нибудь объяснить мне, почему? Возможно, я что-то упустил, потому что все мое понимание заключается в том, что у нас должны быть свойства для использования KVC.

+1

Я думаю, что все это говорит о том, что это не сработает: 'setValue: значение forKey: @" view.transform'. Вам нужно будет использовать 'setValue: значение дляKeyPath: @ view.transform'. –

+0

@ScottBerrevoets Вы подразумевали без двойных кавычек, но сохраняли знак ** @ **? – Unheilig

+0

Извините, опечатка с моей стороны. Я имел в виду часть 'forKeyPath', а не только' forKey'. –

ответ

1

С моей точки зрения, мы должны иметь свойства наших иваров, чтобы использовать KVC.

Это неверное описание. KVC будет использовать методы, созданные с помощью свойств, или другие (соответствующим образом названные) методы доступа, если они существуют, но они не требуются. Если они не существуют, KVC попытается получить прямой доступ к переменным экземпляра.

Чтобы узнать, как KVC ищет ключ для обновления, отметьте this Apple ref.

+0

Спасибо, но что было бы _ ".. другим (соответствующим образом названным) методом доступа" _? Не могли бы вы привести пример? – Unheilig

+1

Для установки только набора : метод действительно действителен, тогда имена переменных экземпляра соответствуют шаблону _ , _is , или , в этом порядке. – Wain

Смежные вопросы