Я самолюбивый пользователь Swift и пытаюсь сделать что-то простое, но у меня все в порядке. У меня простая форма регистрации. После отправки элементов для регистрации я хочу переместить страницу на страницу «как это работает» через segue, но ТОЛЬКО, когда мой успокаивающий API возвращает успех. Вот что я до сих пор; не стесняйтесь присылать мне лучший способ сделать это. Все критические замечания приветствуются.xcode present segue on restful callback (swift)
let myUrl = NSURL(string:"http://www.example.com/scripts/Register.php")
let request = NSMutableURLRequest(URL: myUrl!)
request.HTTPMethod = "POST"
let postString = "email=\(email)&password=\(pass)"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
data, response, error in
if (error != nil) {
println("Error: \(error)")
return
}
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: &err) as? NSDictionary
var showTutorial : Bool = false
if let parseJSON = json {
var returnValue = parseJSON["status"] as? String
println("Status: \(returnValue)")
var isUserRegistered: Bool = false
if (returnValue == "Success") {
showTutorial = true
} else if (returnValue == "Error") {
// handle error
}
}
// if successful registration, show how it works page
if (showTutorial) {
self.performSegueWithIdentifier("howItWorksSegue", sender: self)
}
}
task.resume()
У меня есть переход по имени howItWorksSegue
прилагается к этой точке зрения контроллера происходит в HowItWorksViewController
. Я получаю эту ошибку с Xcode:
2015-10-12 21: 22: 43.261 ZiftDine [11396: 2307755] отказ Assertion в - [UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit_Sim/UIKit-3347.44.2 /Keyboard/UIKeyboardTaskQueue.m:374
2015-10-12 21: 22: 43.391 ZiftDine [11396: 2307755] Завершение приложения из-за неотображенного исключения «NSInternalInconsistencyException», причина: '- [UIKeyboardTaskQueue waitUntilAllTasksAreFinished] может вызываться только из основной поток. '
Спасибо. Я просто попробовал, и это сработало. Все еще интересно, если это хороший метод для этого. –
Это точно правильный метод для этого :) Я использую его очень часто. Если он ответил на ваш вопрос, пожалуйста, отметьте как ответ – Swinny89
@KJBonds Если этот ответ решил проблему, вы должны отметить ее как принятую. –