NSMetaDataQuery nunca vuelve a llamar con NSMetadataQueryDidFinishGatheringNotification
Para un complemento de iCloud que estoy escribiendo, suscribo mi clase de administrador de iCloud a estos observadores de 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];
El problema es que a ninguno de estos selectores se les devuelve la llamada, ni siquiera una vez, y especialmente necesito elNSMetaDataQueryDidUpdateNotification para rastrear el progreso de carga / descarga de archivos en la nube.
Algo extraño es que tuve este trabajo el otro día, pero de alguna manera simplemente dejó de funcionar y me he quedado ciego al tratar de averiguar cuál es realmente el problema. Al suscribirse a laNSMetadataQueryDidStartGatheringNotification Puedo ver que comienza, pero parece que nunca termina. Es bastante raro.
Me preguntaba si alguien tiene alguna idea de qué es lo que está mal con el código anterior. O donde más puedo buscar el problema.
Gracias por tu tiempo :)