Objective-C语言现实生活中最常见的键值编码示例
示例
使用NSKeyValueCoding协议将键值编码集成到NSObject中。
这是什么意思?
这意味着任何id对象都可以调用valueForKey方法及其各种变体,例如valueForKeyPath等。
这也意味着任何id对象都可以调用setValue方法及其各种变体。
示例
id obj = [[MyClass alloc] init]; id value = [obj valueForKey:@"myNumber"]; int myNumberAsInt = [value intValue]; myNumberAsInt = 53; [obj setValue:@(myNumberAsInt) forKey:@"myNumber"];
例外情况:
上面的示例假定MyClass具有一个名为myNumber的NSNumber属性。如果myNumber没有出现在MyClass接口定义中,则可能在第2行和第5行都引发NSUndefinedKeyException,通常称为:
this class is not key value coding-compliant for the key myNumber.
为什么这么强大:
您可以编写可动态访问类属性的代码,而无需该类的接口。这意味着表视图可以显示来自NSObject派生对象的任何属性的值,只要它的属性名称在运行时动态提供。
在上面的示例中,代码也可以在MyClass不可用且id类型obj对调用代码不可用的情况下工作。
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练