有走很长的路,如果接收器类符合NSKeyValueProtocol的选项:
[myInstance setValue:[NSNumber numberWithInt:2] forKey:@"integerProperty"];
或短的路:
myInstance.integerProperty = 2;
这是什么KVC方法的点? 如果是这样有用吗?
有走很长的路,如果接收器类符合NSKeyValueProtocol的选项:
[myInstance setValue:[NSNumber numberWithInt:2] forKey:@"integerProperty"];
或短的路:
myInstance.integerProperty = 2;
这是什么KVC方法的点? 如果是这样有用吗?
首先,那些是不一样的,第二个应该是:
myInstance.integerProperty = [NSNumber numbwerWithInt:2];
如果integerProperty
是一个NSNumber
。
一般来说,你使用时,你正在做的最多的事第二种形式。 您使用setValue:forKey:
和valueForKey:
当你要动态地选择存储在事物的性质。例如,思考如何。 valueForKeyPath:
对一个NSArray
作品(仅供参考,如果你调用-valueForKey:
对一个NSArray
它会返回数组,其中每个对象是询问,所述相应对象的结果NSArray
那个值:
- (NSArray *) valueForKey:(id)key {
NSMutableArray *retval = [NSMutableArray array];
for (NSObject *object in self) {
[retval addObject:[object valueForKey:key]];
}
return retval;
}
在上述情况下,我们能够使用valueForKey:
实现我们的功能,即使我们不知道的关键是什么事前,因为它是通过在作为参数。