Выбор элемента NSArray с использованием кодирования значения ключа - PullRequest
0 голосов
/ 14 января 2012

Если вы прочитаете листинг 4 в разделе Анимация, руководство Apple по основной анимации , то, похоже, будет использоваться KVC и ключевой путь "filters.pulseFilter.inputIntensity", чтобы выбрать объект под названием "pulseFilter" из NSArray. «pulseFilter» на самом деле CIFilter называется «pulseFilter», вызывая метод setName.

Теперь я не вижу метода setName, определенного где-либо. Я также не верю, что вы можете выбрать конкретный элемент из NSArray, используя ключ. Может кто-нибудь объяснить, как это работает?

Ответы [ 2 ]

0 голосов
/ 14 января 2012

Чтобы получить объект из NSArray, используя имя свойства + значение свойства. Шаг 1: приведите сохраненный объект в соответствие с KVC (протокол NSKeyValueCoding), реализовав valueForKey: в своем пользовательском классе.

Шаг 2: отфильтруйте ваш NSArray с помощью NSPredicate (FilterArrayUsingPredicate на вашем NSArray)

Вам нужно больше деталей?

0 голосов
/ 14 января 2012

Не обязательно проходить через стандартные valueForKey: или valueForKeyPath: из NSArray.

Объекты могут свободно предоставлять собственный метод valueForKeyPath: и обрабатывать KVC по-своему, и это, вероятно, делает класс этого selectionLayer объекта.

...