如何保存从UIImagePickerViewController拾取到sqlite数据库的图像的path,并在以后访问? IOS

我需要保存从服务器获取的图像的path,并稍后访问path以通过数据库检索在用户点击时显示该图像。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { NSString *urlPath = [info objectForKey:@"UIImagePickerControllerReferenceURL"]absoluteString]; } 

并保存到数据库。

它保存为assets-library://asset/asset.JPG?id = E1136225-97DE-4BF4-A864-67E33D60737A&ext = JPG

那么我想导入到Imageview

  UIImageView *iv = [[UIImageView alloc]init]; iv.image = [UIimage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imagepath]]]; 

但它不工作

使用assetForURL:resultBlock:failureBlock:方法通过URL检索图像。 还有更多信息: http : //developer.apple.com/library/ios/#documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009722

UPD:

 ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init]; [lib assetForURL: url resultBlock: ^(ALAsset *asset) { ALAssetRepresentation *r = [asset defaultRepresentation]; self.imgView.image = [UIImage imageWithCGImage: r.fullResolutionImage]; } failureBlock: nil]; 

url是你的cachingURL

尝试这个:

  typedef void (^ALAssetsLibraryAssetForURLResultBlock)(ALAsset *asset); typedef void (^ALAssetsLibraryAccessFailureBlock)(NSError *error); ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset){ ALAssetRepresentation *rep = [myasset defaultRepresentation]; CGImageRef iref = [rep fullResolutionImage]; if (iref){ UIImage *myImage = [UIImage imageWithCGImage:iref scale:[rep scale] orientation:(UIImageOrientation)[rep orientation]]; [fileImage addObject:myImage]; } }; ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror){ //failed to get image. }; ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease]; [assetslibrary assetForURL:[filePath objectAtIndex:0] resultBlock:resultblock failureBlock:failureblock]; 

注意:确保你的[filePath objectAtIndex:0]将是一个NSUrl对象。 否则将其转换为NSUrl

例:

 ALAssetsLibrary* assetslibrary = [[[ALAssetsLibrary alloc] init] autorelease]; NSURL myAssetUrl = [NSURL URLWithString:[filePath objectAtIndex:0]]; assetslibrary assetForURL:myAssetUrl resultBlock:resultblock failureBlock:failureblock];