0

我有以下方法,它捕獲照片後從UIImagePicker檢索ALAsset。然後,它試圖通過主線程發送此ALAsset到另外一個我的方法:將參數發送到主線程從異步塊時遇到問題

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    NSURL *imageURL = [[info valueForKey:UIImagePickerControllerReferenceURL] retain]; 
    __block ALAsset *result; 

    [self.assetsLibrary assetForURL:imageURL resultBlock:^(ALAsset *asset) 
    { 
     result = [asset retain]; 

     dispatch_async(dispatch_get_main_queue(),^
     { 
      [self loadPhotoImageViewWithAsset:result]; 
      [self dismissModalViewControllerAnimated:YES]; 
      [imageURL release]; 
      [result release]; 
     }); 
    } 
    failureBlock:^(NSError *error) 
    { 

    }]; 
} 

當我進入dispatch_async(dispatch_get_main_queue(),^blockresult被顯示爲nil。任何人都知道我在這裏做錯了什麼?

回答

2

請參閱UIImagePickerController to use for a UIImageView結果顯示爲零。

使用這樣的:

[self.assetsLibrary assetForURL:imageURL resultBlock:^(ALAsset *asset) 
{ 
    result = [asset retain]; 
    [self loadPhotoImageViewWithAsset:result]; 
    [self dismissModalViewControllerAnimated:YES]; 
    [imageURL release]; 
    [result release]; 
} 
failureBlock:^(NSError *error) 
{ 

}]; 

更改loadPhotoImageViewWithAsset方法

-(void)loadPhotoImageViewWithAsset:(ALAsset *)asset 
{ 
    //dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul); 
    //dispatch_async(queue, ^{ 
    dispatch_async(dispatch_get_main_queue(),^
    { 
    //here code for loading image 
    }); 
    // }); 
} 
+0

感謝這個作品時,我使用UIImagePicker選擇從照片庫中的照片。當我嘗試使用相機時,它沒有,所以我猜這個問題更多的是相機。 –

+0

UIImagePickerControllerReferenceURL有一個用於選取照片並捕獲照片的網址。所以代碼保持不變 –

+0

問題是與imagepicker拍攝的照片沒有去我的照片庫出於某種原因。將你的標記標記爲你回答我問題的正確原因,謝謝。 –

相關問題