2016-12-20 5 views
0

私は自分のSwiftアプリケーション上で私のAPIの私の要求を行うためにAlamofireを使用していますし、それがうまく動作しますが、私はまた、JSON応答がnullに等しいときを検出します。Alamofireリクエストがnullの場合の検出方法

私はnilNSNullへの応答を比較しようとしましたが、私のために働いたものはありませんでした。私もJSON.emptyを使ってみましたが、うまくいきません。さらに、私はsuccessfailureないオプションをキャッチしようとしている私のswitchアプリケーションにdefaultオプションを作成しました。

は実際に私が唯一JSON.emptyオプションを維持しているが、それはelse文に入ることはありません。

これは私が今持っているコードです:私はAlamofirenull応答を処理するにはどうすればよい

Alamofire.request(encodedUrl!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in 

    switch(response.result) { 
     case .success(_): 
      if let JSON = response.result.value as? [[String : AnyObject]]{ 
       if JSON.isEmpty == false{ 
        //Here the code if the request returns data 
       }else{ 
        //Here I wanted to use the code if null is retrieved 
       } 
      }else{ 
       //The JSON cannot be converted 
      } 
      break 

     case .failure(_): 
      //Failure 
      break 
    } 
} 

ありがとうございます!

+0

なぜapiからのヌル応答を返すのですか?空の応答を返す方がずっと良いでしょうか? like:{return:[]} –

+0

@BehranKankul私は時にはAPIが 'null'値を返すこともあり、他のアプリケーションでも使われているので、その値にする必要があることを意味します。例えば、レスポンスが 'null'であれば、それを検出して、アプリケーションに入力したデータが間違っている、またはそれにリンクされている情報がないというメッセージをユーザに表示するだけです。 –

+0

あなたのサーバーにnotFoundまたはunprocessableEntityというステータスコードが返された後、レスポンスでレスポンスコードを確認できます。それが問題の場合は、ユーザーにメッセージを表示することができます – JustinM

答えて

2

あなたのコードによれば、null[[String: AnyObject]]にキャストできないため、// The JSON cannot be convertedに当てはまります。

+0

ありがとう!私は試していない唯一のセクションだと思います。今私はそれを正しく扱うことができます。 –

関連する問題