2011-10-21 32 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下工作,但他們不工作在設備下,它不停止斷點和NSLogs不起作用。模擬器一切正常。注意:CLAuthorizationStatus == kCLAuthorizationStatusAuthorizedassetForURL與ios 5.0不工作與設備

回答

0

截至iOS5 assetForURL工作異步。請確保您致電

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

上的主線程。這通過在主隊列上使用dispatch_async來實現。

乾杯,

亨德里克

1

確保這整個功能 - (void)thumbnail:(NSNumber *)index...是無論是從主線程中執行,或者你確信該用戶已授權您的應用程序使用定位服務。如果您在後臺調用它並且您還沒有授權,那麼將永遠不會提示用戶進行審批,也不會調用結果塊和失敗塊。