Вопрос

Я использую Framework Assetslibrary для извлечения всех групп активов на iPhone. У меня есть какой -то фрагмент кода, как это:

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

И я нашел странное поведение:

1) Когда я запускаю свое приложение в симуляторе iOS (используйте команду + r в Xcode), будет выполнен графический ролик, и имена групп будут напечатаны в консоли

2) Я написал какой -то модульный тест для своего приложения, когда я запускаю модульный тест (используйте команду + U в XCode), который вызывает приведенный выше фрагмент кода, как его называют в моем приложении, группа, похоже, вообще не выполняется, и нет. Имя группы будет напечатано, и сбой Block тоже не вызывается, и я не получаю никакой ошибки при выполнении тестов, но перечисление группы не работает, как это происходит в приложении.

Я проверяю документацию Apple, и я знаю этот метод (EnumerateGroupSwithTypes: с использованием Block: affblock :) асинхронно, однако, даже если я долго жду в своем модульном тесте, я не вижу, чтобы GroupEnumerator выполняется.

Я тестирую против iOS 5.0 с XCode 4.2.

Любая помощь ценится. Спасибо.

Это было полезно?

Решение

Застрял в этой проблеме в течение нескольких дней, не смог выяснить точную причину этой проблемы.

И вместо использования окунита в Xcode 4 мне пришлось переключиться на использование GH-Unit, что на самом деле решает эту проблему. Похоже, что это связано с тем, как Xcode 4 запускает тестовую цель.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top