我有这个代码,他从我的图片中获取资产网址:
NSUrl *caminhoImagem;
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
// Request to save the image to camera roll
[library writeImageToSavedPhotosAlbum:[imagem CGImage] orientation:(ALAssetOrientation)[imagem imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
if (error) {
NSLog(@"Erro na criacao de imagem");
} else {
NSLog(@"Caminho da Imagem -> %@", assetURL);
caminhoImagem = assetURL;
}
}];
NSLog(@"%@",caminhoImagem);
正在发生的是 NSLog(@"%@",caminhoImagem); 让我(' null'),除非它被插入到该方法中(更具体地说是在那个Else中),我无法理解的是我使用这个命令进行了引用:
caminhoImagem = AssetUrl;
似乎没有保存信息,我怀疑来自' completionBlock' ,在我看来似乎阻止某些内容,我该如何解决这个问题,并采取措施方法的信息?
答案 0 :(得分:1)
该块是异步执行的,因此您需要从块内部调用一些方法来使用资产URL。您可以记录在块完成之前运行的打印null
,这样它就无法访问资产URL。