Подскажите пожалуйста, при обработке json в NSURLSession при определенном состоянии нужно вывести ошибку.
Делаю это через AlertController, но постоянно сыпется
Вот сам Alert
func dispayMyAlertMassage (userMessage : String)
{
var myAlert = UIAlertController(title: "Ошибка", message: userMessage, preferredStyle: UIAlertControllerStyle.Alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil)
myAlert.addAction(okAction)
self.presentViewController(myAlert,animated: true, completion : nil)
}
@IBAction func LoginButton(sender: AnyObject){
// сохраняем имя пользователя
let userName = nameText.text
// сохраняем пароль пользователя
let userPassword = PasswordText.text
// ссылка на класс
let myUrl = NSURL ( string: "http://localhost:8080/test1d/directURL?name="+userName+"&pass="+userPassword);
let request = NSMutableURLRequest(URL: myUrl);
request.HTTPMethod = "GET";
if userName.isEmpty & userPassword.isEmpty
{
self.dispayMyAlertMassage ("Введите данные пользователя!");
}
else
{
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
{
data,response,error in
if error != nil {
println("error=\(error)")
}
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData (data, options: .MutableContainers, error: &err) as NSDictionary
let parseJSON = json["ID"] as? NSInteger
println("parse id:\(parseJSON )")
if parseJSON != -1
{
//auth successesfull
NSUserDefaults.standardUserDefaults().setBool(true, forKey:"isUserLoggedIn");
NSUserDefaults.standardUserDefaults().synchronize();
self.dismissViewControllerAnimated(true, completion: nil)
}
else
{
self.dispayMyAlertMassage ("Введите данные пользователя!"); -- тут система ломается
}
}
task.resume()
}
вот текст ошибки:
2015-08-03 17:11:01.440 VinciMobile[5879:423254] *** Assertion failure in -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished], /SourceCache/UIKit_Sim/UIKit-3318/Keyboard/UIKeyboardTaskQueue.m:374
2015-08-03 17:11:01.444 VinciMobile[5879:423254] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread.'
Империческим путем было выявлено, что ломает все именно
эта строка
self.presentViewController(myAlert,animated: true, completion : nil)
Помогите понять, в чем заблуждения?