Я получаю сообщение об ошибке, которое я не могу трясти. Когда я пытаюсь получить доступ к свойству id <NSObject, NSCoding>
с valueForKey
, код подходит для параметра функции, item
, но не для аналогичного id
Я извлекаю из массива. Почему это?Неизвестный метод экземпляра для selector 'valueForKey:' для объекта id <NSObject, NSCoding>
- (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:'
Что мне не хватает, и как я могу сделать сравнение для динамического именованного свойства?
Каков фактический тип данных объекта, на который указывает 'item', когда вы получаете ошибку? – rmaddy