2017-02-10 6 views
-1

MainViewControllerがロードされる前に、ステータスのコードを取得しようとしていますが、今では周りを歩くことは知っていますが、それは実行可能ですか? コードwillEnterForeground,およびinit()に入れてみました。最後の1つは時々動作します。 誰もが何がしなければならないことは、新規に作成されて、私はほとんど今疑問に思って、レスポンスコードを取得するより高速な方法は、などがありViewControllerがロードされる前にURL応答コードを取得しますか?

let task = URLSession.shared.dataTask(with: url!) { _, response, _ in 
     if let httpResponse = response as? HTTPURLResponse { 
      print(httpResponse.statusCode) 

      if httpResponse.statusCode == 404 { 

       print("404") 

      } else if httpResponse.statusCode == 200 { 

       print("200") 

      } 
     } 
    } 
+0

ローディングステータスを使用できます。それ以外の場合はメインスレッド –

+0

リクエスト全体をロードする前にレスポンスコードを取得することはできません。ビューを表示する前にリクエスト全体をロードするには、ブロッキングスレッドでサイトをロードするという非常に悪い習慣を使用する必要があります。 – milo526

+0

あなたは正しいですが、これは私が思っていたことを解決しますが、私はそれを感謝します。 –

答えて

0

を尋ねたり、私がこれを行う可能性がある理由を考えて前に何かがロード中であることを示すコントローラを表示してから、MainViewControllerを非同期メソッドの成功にプッシュ/プレゼンテーションします。

状態が来るまでメインスレッドをブロックしようとすると、iOSウォッチドッグがあなたのアプリを殺してしまう可能性があります。 Source

関連する問題