Car*_*ith 2 iphone objective-c ios
我正在尝试使用NSMetadataQuery访问存储在应用程序文档目录中的一些文件,但NSMetadataQueryDidFinishGatheringNotification不通知我的应用程序.我发现了这个问题,但答案是让NSMetadataQuery成为我已经完成的ivar.
这是我正在使用的代码:
self.query = [[NSMetadataQuery alloc] init];
[self.query setSearchScopes:[NSArray arrayWithObject:documentsDirectoryURL]];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K ENDSWITH '_task'", NSMetadataItemFSNameKey];
[self.query setPredicate:pred];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinishGathering:) name:NSMetadataQueryDidFinishGatheringNotification object:self.query];
[self.query enableUpdates];
[self.query startQuery];
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
这来自Apple文档"关于文件元数据查询":
iOS允许在iCloud中进行元数据搜索,以查找相应文件的文件.它仅提供文件元数据查询,NSMetadataQuery和NSMetadataItem的Objective-C接口,并且仅支持搜索iCloud的搜索范围.
与桌面不同,iOS应用程序的沙箱无法使用元数据类进行搜索.为了搜索应用程序的沙箱,您需要使用NSFileManager类以递归方式遍历沙箱文件系统中的文件.找到匹配的文件后,您可以按照所需的方式访问该文件.您还可以使用NSMedatataItem类检索该特定文件的元数据.
因此,您必须使用NSFileManager.
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |