Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios &引用;条件绑定的初始值设定项必须具有可选类型,而不是';[字符串]'&引用;_Ios_Swift_Youtube_Cocoapods_Swift3 - Fatal编程技术网

Ios &引用;条件绑定的初始值设定项必须具有可选类型,而不是';[字符串]'&引用;

Ios &引用;条件绑定的初始值设定项必须具有可选类型,而不是';[字符串]'&引用;,ios,swift,youtube,cocoapods,swift3,Ios,Swift,Youtube,Cocoapods,Swift3,我正在尝试为在Swift 3.0中工作的CocoaPods获取pod“Swift YouTube Player”,下面的代码出现以下错误(错误指向let pathComponents部分) 条件绑定的初始值设定项必须具有可选类型,而不是“[String]” 看起来像是videoURL。pathComponents不是可选的,因此您必须像这样分解条件: public func videoIDFromYouTubeURL(_ videoURL: URL) -> String? { if

我正在尝试为在Swift 3.0中工作的CocoaPods获取pod“Swift YouTube Player”,下面的代码出现以下错误(错误指向let pathComponents部分)

条件绑定的初始值设定项必须具有可选类型,而不是“[String]”


看起来像是
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
}

看起来像是
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
}