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.

È stato utile?

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.

http://gabriel.github.com/gh-unit

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top