草庐IT

nsmetadataquery

全部标签

ios - 从 iCloud 下载文件时显示进度百分比?

我想在从iCloud下载UIDocument时显示进度条。我尝试在查询中保持对NSMetadataItem的引用,每秒询问它的属性,但键NSMetadataUbiquitousItemPercentDownloadedKey要么不存在,要么突然变为下载文档后100。相关代码://getmetadataitemfromqueryNSNumber*downloadProgress=[self.documentMetadataItemvalueForAttribute:NSMetadataUbiquitousItemPercentDownloadedKey];NSLog(@"download

iphone - NSMetaDataQuery如何监控本地文件目录

使用iCloud,我设置了一个MetaDataQuery,如下所示:[querysetSearchScopes:[NSArrayarrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];如何为我的普通本地文档目录设置相同的MetaDataQuery?以下代码将在我的目录中提供静态文件列表-但我一直在寻找一种更动态的方式,以便我可以使用NSMetadataQueryDidUpdateNotification。这是在我的文档目录中查找文件的静态代码:NSArray*localDocuments=[[NSFileManagerdefa

ios - 如何确定 iCloud 文件夹中是否存在文件?

我有一个iOS应用程序可以将文件存储在iCloud中。当我启动应用程序时,我想确定以前的设备是否已经上传了任何文件。我启动第一台设备并将文件添加到iCloud(我可以在我的Mac上的移动文档文件夹中看到它们)。然后我在第二台设备上启动该应用程序并尝试使用以下NSMetadataQuery来查看是否已上传任何文件,但它返回0个结果。如果我继续运行该查询,大约8-10秒后它会返回结果。iCloudQuery=[[NSMetadataQueryalloc]init];iCloudQuery.searchScopes=@[NSMetadataQueryUbiquitousDataScope];

ios - 如何按修改日期对 UIDocument 的 icloud NSMetadataQuery 结果进行排序?

我有一个iOS应用程序,它使用一个简单的UIDocument模型和一个用于iCloud存储的内容字段。我检索文档列表以使用NSMetadataQuery填充UITableView。我想让新文档出现在该表的顶部,但默认排序似乎是旧的->新的。我知道如果文档中有自定义日期字段,我可以使用该字段上的NSSortDescriptor对查询进行排序,但我的问题是是否可以按通过UIDocumentiCloud存储创建的文件的固有修改日期进行排序?还是有另一种首选方法来执行此操作? 最佳答案 看起来正确的方法是在创建查询时设置查询的排序描述符。沿

swift - 在 Swift 2.2 中使用 Spotlight 列出 El Capitan 上已安装的应用程序

我目前正在构建一个mac应用程序,将来应该能够在OSX上终止和启动应用程序。为此,我需要找到一种方法来获取计算机上所有已安装应用程序的列表。我已经做了很多研究,并决定使用Spotlight和NSMetadataQuery来获取列表。我找到了thispost关于提到的主题,并开始在Swift2.2(项目的首选武器)中实现功能。通过一些翻译,我能够让它工作,代码现在可以成功构建和运行。然而,在运行时,我似乎遇到了查询本身的问题:isbeingdeallocatedwithoutfirstcalling-stopQuery.Toavoidraceconditions,youshouldfir

swift - 使用 NSMetadataQuery 搜索文件什么都不做

我尝试使用NSMetadataQuery和NSPredicate来搜索文件。经过几个小时的尝试和搜索解决方案(我是swift的新手),我有一个小例子。它编译得很好,但结果为零。我尝试了不同的谓词,但最后metadataQuery.resultCount始终为0。有人知道出了什么问题吗?classAppDelegate:NSObject,NSApplicationDelegate{varmetadataQuery:NSMetadataQuery!varmetadataQueryDidUpdateObserver:AnyObject?varmetadataQueryDidFinishGat

ios - 如何创建 NSMetaDataQuery 并在后台线程上获取结果?

默认情况下,NSMetaDataQuery结果通知在主线程上接收。似乎您必须在主线程上调用query.startQuery,但您可以使用[query.setOperationQueue:]设置结果通知将发送到的队列。理想情况下,我希望后台线程接收这些结果并处理它们,并且根据找到的文件,我将设置变量或向主线程发送通知。我不明白的是我如何创建操作队列以及我如何处理该队列上的通知。所需的任何类的示例代码以及应在何处以及如何创建它们的详细信息都会很棒。我已阅读Apple文档,但无法理解如何创建可以处理通知的队列。谢谢 最佳答案 您可以尝试使

iphone - NSMetadataQuery 在完成(或未完成)时不发送通知

我正在尝试使用NSMetadataQuery访问存储在应用程序文档目录中的一些文件,但NSMetadataQueryDidFinishGatheringNotification没有通知我的应用程序。我找到了thisquestion但答案是让NSMetadataQuery成为ivar,我已经这样做了。这是我使用的代码:self.query=[[NSMetadataQueryalloc]init];[self.querysetSearchScopes:[NSArrayarrayWithObject:documentsDirectoryURL]];NSPredicate*pred=[NSPr

ios - iCloud NSMetadataQuery 和更新 (NSMetadataQueryUpdateChangedItemsKey)

我正在使用推荐的NSMetaDataQuery监控我的iCloud沙箱(iOS)-一切正常。我正在尝试在NSMetadataQueryDidUpdateNotification中使用NSMetadataQueryUpdateChangedItemsKey以有效地更新文件系统的内部模型。我面临的挑战是,当文件被移动/重命名时,我如何知道原始文件路径-以便我可以更新我的模型?看起来NSMetaDataItem对象是持久的(即当路径改变时更新相同的对象实例)所以我可以使用指针值作为我模型的一种索引。但是-我会利用一个明显的实现细节(可能会改变。)也许NSMetaDataItems在内存不足时

ios - 通过 URLForUbiquityContainerIdentifier+Path 而不是 NSMetadataQuery 检查 UI(Managed)Document 是否已经在 iCloud 中?

我有一个非常简单的鞋盒式iOS应用程序,带有1单个CoreData数据库(作为UIManagedDocument)并考虑尝试添加iCloud支持。在创建新的UIManagedDocument之前,我当然必须检查云中是否已经有一个现有数据库*启动*、保存/打开等因为我已经知道文件名并且有1个文档或根本没有文档,所以如果必须的话我真的不知道启动一个NSMetaDataQuery,并为确切的文件名设置谓词然后从结果中获取fileURL(并下载明确?)并打开它,如果有的话,或者只需使用[[NSFileManagerdefaultManager]fileExistsAtPath:self.iCl
12