2017-11-24 15 views
-1

に戻り、空のURLに:このような関数で失敗

func getMessageDetails()->URL{ 

     if let theLinks = theMessage.links as? [[String:String]]{ 
      let thisLink = theLinks[3]["Href"] 
      let url = URL(string: thisLink) 
      return url! 
     } 
     return nil// is unacceptable, what should I put here? 
    } 

は私が閉鎖外に何を返す必要がありますか?

答えて

0

この場合、最適な解決策は、オプションのURLを返すことです。リンクが有効なURLでない場合は、ケースを処理することもできます。また、thisLink配列に3つ以上の項目が含まれている場合は、範囲外の例外を避けるためにチェックする必要があります。

func getMessageDetails() -> URL? { 

    if let theLinks = theMessage.links as? [[String:String]], 
     theLinks.count > 3, 
     let thisLink = theLinks[3]["Href"] { 
     return URL(string: thisLink) 
    } 
    return nil 
} 
関連する問題