id <NSObject, NSCoding> 对象的选择器 'valueForKey:' 没有已知的实例方法
No known instance method for selector 'valueForKey:' for id <NSObject, NSCoding> object
我遇到了一个我无法摆脱的错误。当我尝试使用 valueForKey
访问 id <NSObject, NSCoding>
的 属性 时,代码适用于函数参数 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:'
我缺少什么以及如何比较动态命名的 属性?
而不是 id<NSCoding, NSObject >
,将此值键入 NSObject*
。
我遇到了一个我无法摆脱的错误。当我尝试使用 valueForKey
访问 id <NSObject, NSCoding>
的 属性 时,代码适用于函数参数 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:'
我缺少什么以及如何比较动态命名的 属性?
而不是 id<NSCoding, NSObject >
,将此值键入 NSObject*
。