ALAssetsLibrary enumerateGroupsWithTypes restituisce alcun dato
-
27-10-2019 - |
Domanda
Sto usando il framework AssetsLibrary per recuperare tutti i gruppi di attività in iPhone. Ho qualche frammento di codice in questo modo:
NSMutableArray *groups = [[NSMutableArray alloc] initWithCapacity:5];
void (^groupEnumerator)(ALAssetsGroup*, BOOL*) = ^(ALAssetsGroup *group, BOOL *stop) {
if(group != nil) {
NSLog(@"Adding group %@", [group valueForProperty:ALAssetsGroupPropertyName]);
[groups addObject:group];
}
};
ALAssetsLibrary* library = [AssetsManager defaultAssetsLibrary];
[library enumerateGroupsWithTypes: ALAssetsGroupSavedPhotos
usingBlock:groupEnumerator
failureBlock:^(NSError * err) {NSLog(@"Erorr: %@", [err localizedDescription]);}];
E ho trovato un strano comportamento:
1) Quando eseguo la mia applicazione nel simulatore iOS (utilizzare il comando + R in Xcode), verrà eseguito il groupEnumerator e nomi dei gruppi verrà stampato nella console
2) ho scritto un po 'di test di unità per la mia app, quando corro il test di unità (utilizzare il comando + U in Xcode), che chiama il frammento di codice di cui sopra, come viene chiamato nella mia app, il groupEnumerator sembra non ottenere eseguito al tutti e nessuno del nome del gruppo verrà stampata, e il failureBlock non viene chiamato troppo e non ho ricevuto alcun errore durante l'esecuzione dei test, ma l'enumerazione di gruppo non funziona come in app.
verifico la documentazione di Apple, e so che questo metodo (enumerateGroupsWithTypes: usingBlock: failureBlock :) è asincrona, però, anche se aspetto per molto tempo nel mio test di unità, non vedo l'groupEnumerator vengono eseguiti <. / p>
Sono test contro iOS 5.0 con Xcode 4.2.
Ogni aiuto è apprezzato. Grazie.
Soluzione
Bloccato su questo problema per diversi giorni, non poteva capire l'esatta causa di questo problema.
E invece di utilizzare OCUnit in Xcode 4, ho dovuto passare a utilizzare gh-unità, che risolve questo problema effettivamente. Sembra in relazione con il modo in cui Xcode 4 corse il bersaglio di prova.