2013-10-25 87 views
0

好吧,我有我的ImagePicker所有設置和ALAssetLibrary設置來獲取圖片和標題(如果它存在現有圖片或新圖片的通用文本),但現在我試圖找出是否有辦法我可以在assetForURL方法的塊調用之外訪問此信息。因此,這裏是我的代碼,這樣我可以展示所發生的事情(這是在屏幕的viewDidLoad方法的圖片做出選擇後顯示)有沒有辦法訪問resultBlock之外的ALAssets信息?

__block NSString *documentName; 
    __block UIImage *docImage; 
    NSURL *resourceURL = [imageInfo objectForKey:UIImagePickerControllerReferenceURL]; 
    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *asset) 
    { 
     ALAssetRepresentation *imageRep = [asset defaultRepresentation]; 
     //Get Image 
     CGImageRef iref = [imageRep fullResolutionImage]; 
     //If image is null then it's a new picture from Camera 
     if (iref == NULL) { 
      docImage = [imageInfo objectForKey:UIImagePickerControllerOriginalImage]; 
      documentName = @"New Picture"; 
     } 
     else { 
      docImage = [UIImage imageWithCGImage:iref]; 
      documentName = [imageRep filename]; 
     } 
    }; 
    // get the asset library and fetch the asset based on the ref url (pass in block above) 
    ALAssetsLibrary *imageAsset = [[ALAssetsLibrary alloc] init]; 
    [imageAsset assetForURL:resourceURL resultBlock:resultblock failureBlock:nil]; 

現在我希望能夠使用兩個變量( documentName和docImage)在這個ViewController的其他地方(例如,如果有人想在保存它之前更改文檔的名稱,我希望能夠恢復到默認名稱),但我似乎無法弄清楚我需要什麼這樣做可以在以後使用這些變量。不知道這是否合理,所以如果我需要澄清其他事情,請告訴我。

回答

0

好吧,我發現問題不在於代碼,而在於我如何使用它的邏輯。我試圖在選擇圖像後顯示的模態視圖上執行此操作,而不是在ImagePicker屏幕中執行此操作,然後在結果塊代碼中調用模態窗口。

相關問題