【问题标题】:NSMetadataQuery not workingNSMetadataQuery 不起作用
【发布时间】:2014-04-22 01:47:15
【问题描述】:

我正在尝试在我的应用程序中使用 iCloud。在模拟器中,我注意到在 iCloud 中的新文件启动后需要很短的时间才能添加到 ubiquity 容器中。因此,为了刷新我的 UI 以反映这些更改,我设置了一个 NSMetadataQuery,如下所示:

_query = [[NSMetadataQuery alloc] init];
_query.searchScopes = @[ubiquityContainer];
_query.predicate = [NSPredicate predicateWithFormat:@"%K == '*'", NSMetadataItemFSNameKey];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshFiles) name:NSMetadataQueryDidUpdateNotification object:nil];
[_query startQuery];

refreshFiles 永远不会被调用...

我的应用程序将其文件直接保存在 ubiquityContainerNSURL)中 - 它不会创建任何子目录...

我做错了什么?

【问题讨论】:

  • query是局部变量还是实例变量?如果它是本地的,那么问题是query 在超出范围时将被释放。
  • 但是您没有使用该属性,您似乎直接使用了 ivar。财产如何申报?显示@property 行。
  • "@property (strong, nonatomic) NSMetadataQuery *query;"我也使用“@synthesize”
  • 我现在已将其更改为 ivar,但这似乎没有任何改变
  • 尝试将谓词更改为%K like '*'。您需要将like 与通配符一起使用。

标签: ios icloud nsmetadataquery


【解决方案1】:

我发现了问题所在!我需要使用NSMetadataQueryUbiquitousDataScope 作为搜索范围。这解决了问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 2013-12-16
    • 2013-04-26
    • 2011-12-18
    • 2017-02-14
    • 2016-12-06
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多