【问题标题】:Error when trying to save a captured image in swift尝试快速保存捕获的图像时出错
【发布时间】:2015-11-16 01:15:33
【问题描述】:

在我的项目中,我正在捕捉图像。但是当它开始保存图像时,应用程序崩溃并出现错误 -

“解包时意外发现 nil”

我的代码如下-

//  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.")
                }

调试后,我似乎没有得到常量 albumChangeRequest

的任何值

【问题讨论】:

    标签: ios swift camera photos


    【解决方案1】:

    问题是你从来没有给self.assetCollectionself.photoAsset 任何值,所以它们是零。因此,当您尝试在 PHAssetCollectionChangeRequest 初始化程序中使用它们时,您会崩溃。

    顺便说一句,如果您只想将图像保存到相机胶卷中,则不需要所有代码。只需创建请求即可。

    或者,如果您想将图像保存到相机胶卷和相册中,则无需致电PHAssetCollectionChangeRequest(forAssetCollection:assets:)

    最后,您真的不应该在更改块中包含所有额外的东西。只需进行更改即可。其他的东西应该在完成块中。

    【讨论】:

    • 谢谢伙计!只有创建请求进行了保存。但它会保存到相机胶卷中,而我想为我的应用创建一个新相册。
    • 知道如何为这些变量赋予任何值。我认为他们应该根据新专辑的当前状态自动获得价值。我在新相册中添加了 3 张照片,这样它们就不会是零。但我仍然遇到同样的错误
    • "但它保存到相机胶卷中,而我想为我的应用创建一个新相册。"好的!所以我想也许你应该问一个关于这个的问题(如何创建一张新专辑),因为你的代码中根本没有任何东西会导致这种情况发生 - 一百万年我永远不会猜到专辑创作是在你的想法(系统也猜不到)......
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多