assetForURL с ios 5.0 не работает с устройством - PullRequest
0 голосов
/ 21 октября 2011
- (void)thumbnail:(NSNumber *)index{

    __block NSNumber *number = [NSNumber numberWithInt:[index intValue]];

    ALAssetsLibrary *library = [ALAssetsLibrary sharedALAssetsLibrary];

ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
        CGImageRef iref = [myasset thumbnail];
        if (iref) {
        [delegate thumbnailDidLoad:[UIImage imageWithCGImage:iref] withIndex:number];
        }
     NSLog(@"RESSSSSSSSSSSSSSSSSSSSSSSSSSSSSULT");
};

    ALAssetsLibraryAccessFailureBlock failureblock  = ^(NSError *myerror)
    {
        NSLog(@"Error, can't get image - %@",[myerror localizedDescription]);
    };
    NSString *mediaurl =  @"assets-library://asset/asset.JPG?id=5AF4118C-947D-4097-910E-47E19553039C&ext=JPG";

    NSURL *asseturl = [NSURL URLWithString:mediaurl];
    [library assetForURL:asseturl resultBlock:resultblock failureBlock:failureblock];
    NSLog(@"asseturl %@",asseturl);
}

Вот мой код, и у меня есть проблема с моими блоками - они работают под симулятором 5.0, но они не работают под устройством вообще, он не останавливается на точках останова и NSLogs не работают. С симулятором все работает правильно. Примечание: CLAuthorizationStatus == kCLAuthorizationStatusAuthorized

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Убедитесь, что вся эта функция - (void)thumbnail:(NSNumber *)index... либо выполняется из основного потока, либо вы уверены, что пользователь разрешил вашему приложению использовать службы определения местоположения.Если вы вызываете его в фоновом режиме и у вас еще нет авторизации, то у пользователя никогда не будет запрашиваться подтверждение, и не будут вызываться ни блоки результата, ни ошибки.

0 голосов
/ 06 ноября 2011

с iOS5 assetForURL работает асинхронно. Убедитесь, что вы звоните

    [delegate thumbnailDidLoad:[UIImage imageWithCGImage:iref] withIndex:number];

в основном потоке. Это проще всего сделать с помощью dispatch_async в главной очереди.

Приветствия

Хендрик

...