对于我正在编写的 iCloud 插件,我将我的 iCloud 管理器类订阅到这些 iCloud NSMetaDataQuery 观察者:
// Add a predicate for finding the documents
NSString* filePattern = [NSString stringWithFormat:@"*.%@", @"*"];
self.metadataQuery = [[NSMetadataQuery alloc] init];
// Before starting to query, it is required to set the search scope.
arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];
// It is also required to set a search predicate.
[self.metadataQuery setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, filePattern]];
// Listen for the second phase live-updating
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(queryDidReceiveNotification:) name:NSMetadataQueryDidUpdateNotification object:nil];
// Listen for the first phase gathering
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(queryIsDoneGathering:) name:NSMetadataQueryDidFinishGatheringNotification
object:nil];
[self.metadataQuery startQuery];
问题是这些选择器实际上都没有被回调,甚至一次都没有,我特别需要NSMetaDataQueryDidUpdateNotification来跟踪云中文件的上传/下载进度。
奇怪的是,前几天我有这个工作,但不知何故它只是停止工作,我一直盲目地试图弄清楚问题到底是什么。通过订阅NSMetadataQueryDidStartGatheringNotification我可以看到它确实开始了,但就像它永远不会结束一样。这很奇怪。
我想知道是否有人对上述代码有什么问题有任何线索?或者我还能在哪里寻找问题。
感谢您的时间 :)