【发布时间】: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 永远不会被调用...
我的应用程序将其文件直接保存在 ubiquityContainer(NSURL)中 - 它不会创建任何子目录...
我做错了什么?
【问题讨论】:
-
query是局部变量还是实例变量?如果它是本地的,那么问题是query在超出范围时将被释放。 -
但是您没有使用该属性,您似乎直接使用了 ivar。财产如何申报?显示
@property行。 -
"@property (strong, nonatomic) NSMetadataQuery *query;"我也使用“@synthesize”
-
我现在已将其更改为 ivar,但这似乎没有任何改变
-
尝试将谓词更改为
%K like '*'。您需要将like与通配符一起使用。
标签: ios icloud nsmetadataquery