2011-10-21 23 views
0
- (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で動作しますが、デバイスの下では動作しません。ブレークポイントとNSLogは機能しません。シミュレータはすべて正常に動作します。通知:CLAuthorizationStatus == kCLAuthorizationStatusAuthorizediOS 5.0のassetForURLはデバイスで動作しません

答えて

0

as iOS5 assetForURL async as works。必ず

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

と電話してください。これは、メインキューでdispatch_asyncを使用すると簡単に実行できます。

乾杯、

ヘンドリック

1

ていることを確認し、この全体の機能 - (void)thumbnail:(NSNumber *)index...どちらかメインスレッドから実行したり、ユーザーがロケーションサービスを使用するようにアプリを承認したことを確信しています。これをバックグラウンドで呼び出すと、まだ権限がない場合、ユーザーは決して承認を求められず、結果ブロックも失敗ブロックも呼び出されません。

関連する問題