iOS Error Domain=PHPhotosErrorDomain Code=3300

AVCapturePhoto的数据保存到 PHPhotoLibrary的时候报错Error Domain=PHPhotosErrorDomain Code=3300

解决代码(也可以使用addResourceWithType:data:options:来添加数据到request,JEPG的实测可以,raw的不确定):

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
PHAssetCreationRequest *request = [PHAssetCreationRequest creationRequestForAsset];
PHAssetResourceCreationOptions *options = [[PHAssetResourceCreationOptions alloc] init];

// self.rawFileURL is your custom URL, you'd better to use "[yourFileDirectoryAndFileName URLByAppendingPathExtension:@"DNG"];" to express format
[request addResourceWithType:PHAssetResourceTypeAlternatePhoto fileURL:self.rawFileURL options:options];

// self.compressedFileURL is your custom URL, you can choose some compress format to save. It's optional, but if you invoke "AVCapturePhotoSettings photoSettingsWithRawPixelFormatType:processedFormat:",you must pass parameter "processedFormat" but not need to invoke addResourceWithType:fileURL:options: as below:
if (self.compressedFileURL) {
    [request addResourceWithType:PHAssetResourceTypePhoto fileURL:self.compressedFileURL options:nil];
}

 运行截图:

问题原因:保存RAW到resource的时候用了PHAssetResourceTypePhoto,但是PHAssetResourceType的文档显示raw用PHAssetResourceTypeAlternatePhoto(下图最后一行).这和苹果的官方示例是不一样的,注意注意!

如果你只想保存RAW文件,你也需要调用"AVCapturePhotoSettings photoSettingsWithRawPixelFormatType:processedFormat:",注意你必须传递参数给processedFormat,但接下来不需要调用addResourceWithType:fileURL:options:添加有损格式(例如JPEG)到照片库PHPhotoLibrary。

还有PHAssetCreationRequest和PHAssetResourceCreationOptions对象必须只新建一次,如果多次alloc和init这两个对象将导致问题。(好像是code=3301)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ipa equestOrder IOS 14.8 版本手机报错,信息如下,其他版本不报错。 equestOrder failed: {"code":0,"message":"Payment_appleiap:Error Domain=SKErrorDomain Code=0 \"An unknown error occurred\" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x282b4a670 {Error Domain=ASDErrorDomain Code=500 \"Unhandled exception\" UserInfo={NSUnderlyingError=0x282b4bcf0 {Error Domain=AMSErrorDomain Code=203 \"Bag Load Failed\" UserInfo={NSLocalizedFailureReason=Unable to retrieve p2-product-offers-batch-limit because we failed to load the bag., NSLocalizedDescription=Bag Load Failed, NSUnderlyingError=0x282b4b510 {Error Domain=AMSErrorDomain Code=203 \"Bag Load Failed\" UserInfo=0x283049b40 (not displayed)}}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}}},https://ask.dcloud.net.cn/article/282","errCode":0,"errMsg":"Payment_appleiap:Error Domain=SKErrorDomain Code=0 \"An unknown error occurred\" UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x282b4a670 {Error Domain=ASDErrorDomain Code=500 \"Unhandled exception\" UserInfo={NSUnderlyingError=0x282b4bcf0 {Error Domain=AMSErrorDomain Code=203 \"Bag Load Failed\" UserInfo={NSLocalizedFailureReason=Unable to retrieve p2-product-offers-batch-limit because we failed to load the bag., NSLocalizedDescription=Bag Load Failed, NSUnderlyingError=0x282b4b510 {Error Domain=AMSErrorDomain Code=203 \"Bag Load Failed\" UserInfo=0x283049b40 (not displayed)}}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}}}
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值