“条件绑定的初始化程序必须具有可选类型,而不是'[String]'”

时间:2016-09-14 08:54:16

标签: ios swift youtube cocoapods swift3

我正在尝试使用Swift 3.0中的CocoaPods播放“Swift-YouTube-Player”,我收到以下代码的错误(错误指向let pathComponents部分)。

“条件绑定的初始化程序必须具有可选类型,而不是'[String]'”

public func videoIDFromYouTubeURL(_ videoURL: URL) -> String? {
    if let host = videoURL.host, let pathComponents = videoURL.pathComponents , pathComponents.count > 1 && host.hasSuffix("youtu.be") {
        return pathComponents[1]
    }
    return videoURL.queryStringComponents()["v"] as? String
}

1 个答案:

答案 0 :(得分:4)

看起来videoURL.pathComponents不是可选的,所以你必须打破这样的条件:

public func videoIDFromYouTubeURL(_ videoURL: URL) -> String? {
    if let host = videoURL.host {
        let pathComponents = videoURL.pathComponents 
        if pathComponents.count > 1 && host.hasSuffix("youtu.be") {
            return pathComponents[1]
        }
    } 
    return videoURL.queryStringComponents()["v"] as? String
}