如何使用“valueforkey”?

时间:2014-12-21 16:47:32

标签: xcode

我正在尝试执行以下操作 - 我有一个数组,其中存储了一些字符串。这些字符串应用于调用NSArray。一个例子将阐明我正在尝试做什么:

这是我正在努力实现的工作代码(“briefing0”属于NSArray类型):

NSString *path = [docsDir stringByAppendingPathComponent:[briefing0 objectAtIndex:indexPath.row]];

这是我尝试使用的“相同”代码:

int i = 0;
NSString *path = [docsDir stringByAppendingPathComponent:[(NSArray *)[NSString     stringWithFormat:@"briefing%d", i] objectAtIndex:indexPath.row]];

有什么想法吗? 提前致谢! 汤姆

1 个答案:

答案 0 :(得分:1)

假设briefing0实际上是一个属性,那么是的,这可以通过KVC在ObjC中(并非罕见)。

int i = 0;
NSString *prop = [NSString stringWithFormat:@"briefing%d", i];
NSArray *array = [self valueForKey:prop];
NSString *value = [array objectAtIndex:indexPath.row];
... etc. ...

-valueForKey:是您正在寻找的作品。请注意,如果构造一个不存在的键,这将抛出异常,因此必须非常小心地使用。