在获取PHAsset路径时解开Optional值时意外发现nil

时间:2019-04-03 13:13:15

标签: ios swift swift4 phasset

由于以下行中的代码中的nil值,导致应用程序崩溃:

if let strURL = (contentEditingInput!.audiovisualAsset as? AVURLAsset)?.url.absoluteString

在展开可选值时意外发现nil

func getUrlFromPHAsset(asset: PHAsset, callBack: @escaping (_ url: URL?) -> Void) {
    asset.requestContentEditingInput(with: PHContentEditingInputRequestOptions(), completionHandler: { (contentEditingInput, dictInfo) in

        if let strURL = (contentEditingInput!.audiovisualAsset as? AVURLAsset)?.url.absoluteString {
            print("VIDEO URL: \(strURL)")
            callBack(URL.init(string: strURL))
        }
    })
}

1 个答案:

答案 0 :(得分:0)

只是一个猜测,但是这个隐式解包的可选内容是不安全的:contentEditingInput!。那是零吗?将该行设置为:

if let strURL = (contentEditingInput?.audiovisualAsset as? AVURLAsset)?.url.absoluteString

否则,如果contentEditingInput为nil,则展开时会崩溃。

为将来提供参考,请尝试提供有关崩溃发生的位置,相关代码以及所显示代码中使用的值的更多信息。