検索してもいまいち答えがわからず、悩みに悩んでいたら、当たり前のエラーだったので今後また悩んだ時のために記録しておきます

結論:愚直にelse{return}と書くからいけない

今回書いてたコードはこんな感じ

    func samplefunction(ContentId:Int) ->(String,Int,String){
       apiURL = "https://hoge.com/hoge.php"       
       guard let requestURL=URL(string:apiURL) else {return}  //ここでエラー発生

そもそも、funcは返り値を(String,Int,String)としてるにも関わらず、
これまでの先入観でreturnのみ記載していた。

returnの後にfuncにあるのと同様の返り値を与えるといい

    func samplefunction(ContentId:Int) ->(String,Int,String){
       apiURL = "https://hoge.com/hoge.php"       
       guard let requestURL=URL(string:apiURL) else {return ("",0,"")}  

と、こんな感じでタプルを返すとエラーがとまった。

エラーコードが出てから、guard letの行ばかりみていたが、そこじゃなかったってお話です。

コメント