对于id <nsobject,nscoding =“”> object,选择器'valueForKey:'没有已知的实例方法

时间:2016-02-09 23:52:14

标签: objective-c nsobject key-value-coding

我收到了一个我无法动摇的错误。当我尝试使用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 个答案:

答案 0 :(得分:0)

而不是id<NSCoding, NSObject >,请将此值键入NSObject*