首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ALAsset NSURL *assetURL返回NULL

ALAsset NSURL *assetURL返回NULL
EN

Stack Overflow用户
提问于 2013-10-11 06:56:37
回答 1查看 806关注 0票数 0

我在尝试使用ALAssetsLibrary将图像保存到SavedPhotosAlbum时遇到了一个奇怪的问题,特别是当我使用writeImageToSavedPhotosAlbum方法时。

基本上,我的问题是NSURL在我的完成块中返回null ...没有错误,但URL为空。

下面是方法:

代码语言:javascript
运行
复制
UIImage *imageToSave = [libraryPicture imageFromCurrentlyProcessedOutput];


  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
  [library writeImageToSavedPhotosAlbum:[imageToSave CGImage] orientation:ALAssetOrientationUp  completionBlock:^(NSURL *assetURL, NSError *error) {

  NSLog(@"AssetURL: %@", assetURL);

  if(!error) {
    NSLog(@"\t ! Error");
    NSLog(@"\t Error: %@", [error localizedDescription]);
    NSLog(@"\t Error code %d", [error code]);
  }

  if(error != nil) {
    NSLog(@"\t ERROR != NIL");
    NSLog(@"\t Error - Image Failed To Save With Error: %@", [error localizedDescription]);
    NSLog(@"\t Error code %d", [error code]);
  }

  if(error == nil) {
    NSLog(@"\t ERROR == NIL");
  }

  }];

我在几行之外使用了一个非常类似的方法(在另一种切换情况下),它在几乎相同的完成块中打印URL (尽管调用的方法不同):

代码语言:javascript
运行
复制
[stillCamera capturePhotoAsJPEGProcessedUpToFilter:selectedFilter withCompletionHandler:^(NSData *processedJPEG, NSError *error) {
  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
  [library writeImageDataToSavedPhotosAlbum:processedJPEG metadata:stillCamera.currentCaptureMetadata completionBlock:^(NSURL *assetURL, NSError *error2) {
    if (error2 != nil) {
      NSLog(@"ERROR: the image failed to be written");
    }
    else {
      NSLog(@"PHOTO SAVED FROM STILL CAMERA - assetURL: %@", assetURL);
    }

  }];
}];
EN

回答 1

Stack Overflow用户

发布于 2013-10-21 17:42:12

如果你真的看到了你声明的行为,这似乎是Asset Library违反了它的API合同。你应该向Apple提交一个示例项目来演示这一点,也许还应该提交DTS事件以获得更快的响应。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19307611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档