Pregunta

Estoy usando el marco AssetsLibrary para recuperar todos los grupos de activos en el iPhone. Tengo algún fragmento de código como este:

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]);}];

Y encontré un comportamiento extraño:

1) Cuando ejecuto mi aplicación en el simulador iOS (use el comando + r en xcode), se ejecutará GroupEnumerator y los nombres de grupo se imprimirán en la consola

2) Escribí alguna prueba unitaria para mi aplicación, cuando ejecuto la prueba unitaria (uso el comando + u en xcode), que llama al fragmento de código anterior como se llama en mi aplicación, el groupEnumerator no parece ser ejecutado en absoluto y ninguno del nombre del grupo se imprimirá, y el fallido no se llama tampoco y no recibo ningún error al ejecutar las pruebas, pero la enumeración del grupo no funciona como lo hace en la aplicación.

Compruebo la documentación de Apple, y conozco este método (enumerateGroupswithPes: Usingblock: failatblock :) es asíncrono, sin embargo, incluso si espero mucho tiempo en mi prueba unitaria, no veo que el groupenumerator se ejecute.

Estoy probando contra iOS 5.0 con Xcode 4.2.

Se agradece cualquier ayuda. Gracias.

¿Fue útil?

Solución

Atrapado en este problema durante varios días, no pudo resolver la causa exacta de este problema.

Y en lugar de usar Ocunit en Xcode 4, tuve que cambiar para usar GH-Unit, que en realidad resuelve este problema. Parece relacionado con la forma en que Xcode 4 ejecuta el objetivo de prueba.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top