n.e*_*ind 5 iphone cocoa-touch objective-c ios
使用iCloud,我设置了一个MetaDataQuery,如下所示:
[query setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];
Run Code Online (Sandbox Code Playgroud)
如何为我的普通本地文档目录设置相同的MetaDataQuery?
下面的代码将为我提供我目录中的静态文件列表 - 但我正在寻找一种更加动态的方式,以便我可以使用NSMetadataQueryDidUpdateNotification.
这是我在我的documentsDirectory中查找文件的静态代码:
NSArray* localDocuments = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:
[self documentsDirectory] error:nil];
NSArray *onlyPQs = [localDocuments filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.pq'"]];
NSLog(@"local file count: %i", [onlyPQs count]);
for (int i=0; i < [onlyPQs count]; i++) {
NSLog(@"LOCAL:%@", [onlyPQs objectAtIndex:i]);
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我一直在寻找这个问题的答案,根据文档(搜索iCloud和桌面),它是不可能的:
与桌面不同,iOS应用程序的沙箱无法使用元数据类进行搜索.为了搜索应用程序的沙箱,您需要使用NSFileManager类以递归方式遍历沙箱文件系统中的文件.
在Mac OS X三个额外的范围定义为:NSMetadataQueryUserHomeScope,NSMetadataQueryLocalComputerScope以及NSMetadataQueryNetworkScope可用于实现这一目标.
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |