Не известен метод экземпляра для селектора '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*
,