[library writeImagetoSavedPhotosAlbum:self.checkInImage.CGImage Metadata:self.Metadata completionBlock :^(NSURL * assetURL,NSError * error) { NSLog (@"Asset url = %@",assetURL); NSError *err; Nsstring *docDir = [NSSearchPathForDirectorIEsInDomains (NSdocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0]; Nsstring *jpgfilePath = [Nsstring stringWithFormat:@"%@/test.jpg",docDir]; NSfileManager *fileManager = [NSfileManager defaultManager]; [fileManager moveItemAtURL:assetURL toURL:[NSURL URLWithString:jpgfilePath] error:&err]; NSLog(@"error is %@",err); }];
我得到的错误是
错误域= NSCocoaErrorDomain代码= 262“ *** 作无法完成.(Cocoa错误262.)”UserInfo = 0xb49a680 {NSURL = assets-library://asset/asset.JPG?ID = 6FAC823A-33CB-489B-A125 -714FBA5F0EE8&安培; EXT = JPG}
有任何想法吗?
解决方法 Docs (and Google).此错误代码对应于NSfileReadUnsupportedSchemeError常量 – i.即你不能只使用assets-library:// URL来使用NSfileManager移动文件. (关于ipod-library:// URL的情况也是如此.)您必须使用AssetsLibrary框架来获取文件的数据,然后使用 – [NSData writetofile:atomically:]将其写入文件.ALAssetsLibrary *lib = [ALAssetsLibrary new];[lib assetForUrl:theURL // the asset URL you have obtained,NSURL object resultBlock:^(ALAsset *asset) { // get data ALAssetRepresentation *repr = [asset defaultRepresentation]; CGImageRef cgimg = [repr fullResolutionImage]; Nsstring *fname = [repr filename]; UIImage *img = [UIImage imageWithCGImage:cgimg]; NSData *data = UIImagePNGRepresentation(img); [data writetofile:[@"BaseDirectory/" stringByAppendingPathComponent:fname] atomically:YES]; [lib release]; } failureBlock:^(NSError *error) { // recover from error,then [lib release]; }];总结
以上是内存溢出为你收集整理的ios – 如何将图像从资产库移动到特定于应用程序的私有位置?全部内容,希望文章能够帮你解决ios – 如何将图像从资产库移动到特定于应用程序的私有位置?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)