NSMetaDataQuery никогда не перезванивает с NSMetadataQueryDidFinishGatheringNotification
Для плагина 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 Я вижу, что это начинается, но, похоже, никогда не заканчивается. Это довольно странно.
Мне было интересно, есть ли у кого-нибудь какие-либо подсказки, что не так с приведенным выше кодом? Или где еще я могу искать проблему.
Спасибо за уделенное время :)