好的,所以我有我的ImagePicker所有设置和ALAssetLibrary设置来获取图片和标题(如果它存在现有图片或通用文本的新图片)但现在我想弄清楚是否有一种方式我可以从assetForURL方法访问块调用之外的此信息。所以这是我的代码,所以我可以显示正在发生的事情(这是在进行图片选择后显示的屏幕的viewDidLoad方法)
__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];
现在我希望能够在这个ViewController的其他地方使用两个变量(documentName和docImage)(例如,如果有人想要在保存文档之前更改文档的名称,我希望能够恢复到默认名称)但我似乎无法弄清楚我需要做什么,以便以后可以使用这些变量。不知道这是否有意义,所以如果我需要澄清其他任何事情让我知道。
答案 0 :(得分:0)
好的,所以我发现问题不在于代码,而在于我对如何使用它的逻辑。我试图在选择图像后呈现的模态视图上执行此操作,而不是仅在ImagePicker屏幕中执行此操作,然后在结果块代码内调用模态窗口。