我收到了一个我无法动摇的错误。当我尝试使用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:'
我缺少什么,如何对动态命名属性进行比较?
答案 0 :(得分:0)
而不是id<NSCoding, NSObject >
,请将此值键入NSObject*
。