目标C:当valueForKey是具有属性的实例时

时间:2015-06-28 12:25:35

标签: objective-c

我正在尝试提取属于另一个类的属性的类的实例的属性!通过示例更容易显示......

// Person is a class with properties: name and age
Person *person = [[Person alloc] init];
[person setName:@"Alex"];

// Age is a class with properties value (i.e. 100) and unit (i.e. year)
Age *age = [[Age alloc] init];
[age setValue:@100];
[person setAge:age];

NSMutableArray *people = [[NSMutableArray alloc] init];
[people addObject:person];

for (id person in people) {

如何提取与此人相关联的年龄实例的value属性?

    //[person valueForKey:@"age.value")];

我希望得到@ 100 - 我得到'NSInvalidArgumentException'

这给了我Age的实例 - 但我宁愿拥有value属性。

    //[person valueForKey:@"age")];
}
这可能吗?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

使用valueForKeyPath:而不是valueForKey:来处理对象图的[潜在]遍历,而不仅仅是顶层查找。

[person valueForKeyPath:"age.value"]应该是正确的。

答案 1 :(得分:0)

您希望得到RTSPServer value age。 我将代码更改为dot.notation,它只是person

person.age.value