私は自分のSwift
アプリケーション上で私のAPIの私の要求を行うためにAlamofire
を使用していますし、それがうまく動作しますが、私はまた、JSON応答がnull
に等しいときを検出します。Alamofireリクエストがnullの場合の検出方法
私はnil
とNSNull
への応答を比較しようとしましたが、私のために働いたものはありませんでした。私もJSON.empty
を使ってみましたが、うまくいきません。さらに、私はsuccess
かfailure
ないオプションをキャッチしようとしている私のswitch
アプリケーションにdefault
オプションを作成しました。
は実際に私が唯一JSON.empty
オプションを維持しているが、それはelse文に入ることはありません。
これは私が今持っているコードです:私はAlamofire
にnull
応答を処理するにはどうすればよい
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
}
}
?
ありがとうございます!
なぜapiからのヌル応答を返すのですか?空の応答を返す方がずっと良いでしょうか? like:{return:[]} –
@BehranKankul私は時にはAPIが 'null'値を返すこともあり、他のアプリケーションでも使われているので、その値にする必要があることを意味します。例えば、レスポンスが 'null'であれば、それを検出して、アプリケーションに入力したデータが間違っている、またはそれにリンクされている情報がないというメッセージをユーザに表示するだけです。 –
あなたのサーバーにnotFoundまたはunprocessableEntityというステータスコードが返された後、レスポンスでレスポンスコードを確認できます。それが問題の場合は、ユーザーにメッセージを表示することができます – JustinM