アプリを開くときに自分のアプリのユーザーを確認しようとしています。私はユーザーのメールの投稿をサーバーに送信するスプラッシュ画面を持っており、サーバーからの応答に基づいてホームビューまたは電子メール確認ページを読み込みます。どのようにサーバーに投稿を行い、応答を待ってから、Swiftの応答に基づいてビューを変更しますか?
私が得た問題は、投稿を作成すると、それを別のスレッドに入れているように見えて、ビューが既に変更されてアプリが解決するまでレスポンスが表示されないことです。
私が使用しようとしました:
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
と
let task = session.dataTaskWithRequest(request)
{
//more stuff to handle return
}
task.resume()
とも
NSURLConnection.sendSynchronousRequest()
第一および第三のオプションを使用して問題がで、彼らは方法が廃止されていることです彼ら自身のスレッドで作業することに加えて、if文の後で応答を受け取ってビューを変更するすでに走った。
この
は、コードのスニペットが使用されている: //returns the email of the user
let email = self.fileCom.getUserStringField("email")
//write the string to post to the server
let post = "email=" + email +
"&pass=" + self.serverCom.PASSWORD
//post the user email to verification script and log result
logResponse(self.serverCom.postToServer(self.serverCom.getVerifyEmailScriptURL(), bodyData: post))
//Check the status of verified and email
// if(self.fileCom.getUserBoolField("verified"))
if(false)//temp
{
//change view to home view
print("\nHomeView\n")
showHomeView()
}
else
{
//change view to verification view
print("\nVerifyView\n")
showVerificationView()
}
ザ・ビューを変更する文がドキュメントフォルダにユーザーのファイルへのサーバから保存された応答に基づいている場合。
あなたがネットワーク呼び出しの完了ハンドラ内でビューを表示する必要があります。 –