在我的项目中,我正在捕捉图像。但是当它开始保存图像时,应用程序崩溃并出现以下错误 -
“打开包装时意外发现零”
我的代码如下-
// Library Assets
var assetCollection: PHAssetCollection!
var photoAsset: PHFetchResult!
let saveImage = UIImage(CGImage: cgImage, scale: 1, orientation: UIImageOrientation.Down)
if let actualSaveImage = saveImage {
// Save image
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let request = PHAssetChangeRequest.creationRequestForAssetFromImage(actualSaveImage)
let assetPlaceholder = request.placeholderForCreatedAsset
let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection, assets: self.photoAsset)
albumChangeRequest.addAssets([assetPlaceholder])
self.buttonCapture.hidden = false
self.activityIndicator.stopAnimating()
self.lastShotFlag = false
}, completionHandler: {(success, error)in
NSLog("\nSave Image -> %@", (success ? "Success" : "Error!"))
})
}
else {
NSLog("\nProblem in saveImage. It's nil.")
}
调试后看起来我没有得到常量的任何值专辑更改请求
问题是你从来没有付出过self.assetCollection
or self.photoAsset
任何值,所以它们为零。因此,当您尝试在 PHAssetCollection 更改请求初始值设定项中使用它们时,您会崩溃。
顺便说一句,如果您只想将图像保存到相机胶卷中,则不需要所有这些代码。您只需要创建请求即可。
或者,如果您想将图像保存到相机胶卷和相册中,则无需调用PHAssetCollectionChangeRequest(forAssetCollection:assets:)
去做吧。
最后,你真的不应该在变更块中放置所有额外的东西。只需进行更改即可。其他的东西应该在完成块中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)