2014-05-17 46 views
0

我有例如5 MyFile对象在我的NSArray中。这5个对象中的每一个都有属性pathKVC从字符串中获得lastPathComponent,这是对象的属性

MyFile *myFile ...; 

NSString path = myMyFile.path; 

因此,使用KVC,我可以得到的属性形成阵列中的所有我的5个对象:

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

所以上面的代码将返回path!而非MyFile对象,这是正常的我。

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

+0

为你的阵列,而不是valueForKeyPath上使用valueForKey应该不行 –

回答

1

使用valueForKeyPath与阵列

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

你正在使用的是KVC,而不是KVO(编码,未观察),但在NSArray的情况下,这是一个明确说明的方法(valueForKey:)。它调用目标对象上的方法并返回内容。所以,你可以使用它lastPathComponent

的确,您应该可以通过valueForKeyPath:path.lastPathComponent使用纯KVC。

相关问题