Не известен метод экземпляра для селектора 'valueForKey:' для объекта id <NSObject, NSCoding>

Я получаю ошибку, которую не могу стряхнуть. Когда я пытаюсь получить доступ к id <NSObject, NSCoding>собственность с valueForKey код подходит для параметра функции, item, но не для аналогичного id Я извлекаю из массива. Почему это?

- (void) insertItem:(id<NSCoding, NSObject >) item {
            for (int i = 0; i < [self.sortDescriptors count]; i++) {
                NSString  *propertyString = self.sortDescriptors[i].key;
                int idx = 0;
                id<NSCoding, NSObject > comparisonItem = self.items[idx];
                while ([[item valueForKey: propertyString] compare:[comparisonItem valueForKey: propertyString]] == NSOrderedAscending) {
                     ....

Вот этот звонок:

[comparisonItem valueForKey: propertyString]

Это вызывает эту ошибку:

No known instance method for selector 'valueForKey:' 

Что мне не хватает и как я могу сделать сравнение для свойства с динамическим именем?

1 ответ

Решение

Вместо id<NSCoding, NSObject >введите это значение как NSObject*,

Другие вопросы по тегам