Я пытаюсь проверить пользователя моего приложения, когда они открывают приложение. У меня есть заставку, которая отправляет сообщение электронной почты пользователям на сервер и на основании ответа от сервера он либо загрузит домашний просмотр, либо страницу проверки электронной почты.Как сделать сообщение на сервере, подождать ответа, а затем изменить представление на основе ответа в 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()
}
если заявление, чтобы изменить вид основано на хранимый ответ от сервера к файлу пользователя в папке документов.
Вы должны показать представление в обработчик завершения для сетевого вызова. –