KVC从string获取lastPathComponent,这是object的属性

时间:2014-05-17 12:11:14

标签: ios nsstring nsarray key-value-coding

我有例如我的MyFile中有5个NSArray个对象。这5个对象中的每一个都具有属性path

MyFile *myFile ...;

NSString path = myMyFile.path;

因此,使用KVC,我可以从数组中的所有5个对象中获取属性:

NSArray *folders = [[PNFolder MR_findAllWithPredicate:predicate] valueForKey:@"path"];

因此上面的代码会返回path而不是MyFile个对象,这对我来说没问题。

但是,如何在这里使用lastPathComponent使我的数组只返回文件夹名称而不是完整路径。我的意思是使用KVC。还是我需要写周期?

2 个答案:

答案 0 :(得分:1)

你使用的是KVC,而不是KVO(编码,不是观察),但在NSArray的情况下,它是一个明确陈述的方法(valueForKey:)。它调用目标对象上的方法并返回内容。因此,您可以将其与lastPathComponent一起使用。

事实上,您应该能够通过valueForKeyPath: path.lastPathComponent使用纯KVC。

答案 1 :(得分:1)

将valueForKeyPath与数组一起使用

NSArray *folderNames = [[PNFolder MR_findAllWithPredicate:predicate] valueForKeyPath:@"path.lastPathComponent"];