2016-09-25 12 views
3

右使用されていない?結果は、私が呼び出し、次の閉鎖に結果とエラーを使用するとき。なぜこれが未使用であるさ 『taskForDeleteMethod』への呼び出しの結果」のエラーが表示された第二コメントの下

func deleteSession(_ completionHandlerForDeleteSession: @escaping (_ success: Bool, _ error: NSError?) -> Void) { 

    /* 1. Specify parameters, method (if has {key}), and HTTP body (if POST) */ 
    // There are none... 

    /* 2. Make the request */ 
    taskForDELETEMethod { (results, error) in 

     /* 3. Send the desired value(s) to completion handler */ 
     if let error = error { 
      print("Post error: \(error)") 
      completionHandlerForDeleteSession(false, error) 
     } else { 
      guard let session = results![JSONKeys.session] as? [String: AnyObject] else { 
       print("No key '\(JSONKeys.session)' in \(results)") 
       return 
      } 

      if let id = session[JSONKeys.id] as? String { 
       print("logout id: \(id)") 
       completionHandlerForDeleteSession(true, nil) 
      } 
     } 
    } 
} 

答えて

0

あなたはクロージャ内で使用実際に、あるresults変数、、、およびNSURLSessionDataTask対象であるtaskForDELETEMethodコール自体、結果を混乱されている。

を私がすることができたtaskForDELETEMethodを使用しての例からそれが完全に戻り値を無視するように見えるオンラインを見つけるので、あなたは、あなたがメソッドの戻り値について悩む必要はありません、以前の迅速なバージョンで、すなわち

let _ = taskForDELETEMethod { 
    ... // The rest of your code goes here 
} 
3

_結果を変数に代入することにより、この警告を回避することができます。任意の変数に格納することができます。後で使用するか、完全に無視することができます。それはいかなる誤りも警告も与えなかった。

swift 3.0返された値を無視するか、使用するかを指定する必要があります。

。あなたが返された値を使用したい場合は、すなわち

let value = taskForDELETEMethod { 
    // Your code goes here 
} 

、定数/変数を作成し、その中に値を格納することができます。あなたは戻り値を無視したい場合は、さらに良い_、すなわち

let _ = taskForDELETEMethod { 
    // Your code goes here 
} 
+2

を使用することができ、あなただけの「_ =メソッドを()」を実行することができます。戻り値が必要ない場合は、letを指定する必要はありません。 –

関連する問題