2016-09-14 41 views
1

我試圖在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 
} 

回答

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 
} 
相關問題