NSMetaDataQuery nigdy nie oddzwania z NSMetadataQueryDidFinishGatheringNotification
W przypadku wtyczki iCloud, którą piszę, subskrybuję klasę menedżera iCloud do obserwatorów 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];
Problem polega na tym, że żaden z tych selektorów nie jest nigdy wywoływany, nawet raz, a szczególnie potrzebujęNSMetaDataQueryDidUpdateNotification do śledzenia postępu przesyłania / pobierania plików w chmurze.
Dziwną rzeczą jest to, że pracowałem tego dnia, ale jakoś przestało to działać i zagrałem się ślepo, próbując dowiedzieć się, czym właściwie jest ten problem. Subskrybując doNSMetadataQueryDidStartGatheringNotification Widzę, że to się zaczyna, ale to tak, jakby nigdy się nie kończy. To dość dziwne.
Zastanawiałem się, czy ktokolwiek ma jakąkolwiek wskazówkę, co jest nie tak z powyższym kodem? Albo gdzie indziej mogę szukać problemu.
Dziękuję za Twój czas :)