У меня есть 2 окна в swift, один из них - диалоговое окно входа, которое отправляет NSURLConnection.sendAsynchronousRequest
на сервер, чтобы получить аутентификацию. Как только он получит ответ, окно должно закрыть.Threading + несколько окон, вызывающих странные ошибки
Когда я закрываю окно (либо из класса окна Войти или в главном окне CLASS) я получаю эти ошибки:
This application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes. This will cause an exception in a future release.
Я пробовал всякий фоновые потоки и т.д. Но я думаю, что этот вопрос что я закрываю окно, почему запрос asynch NSURLConnection все еще висит.
Мой код для отправки запроса асинхронной из окна входа в систему:
dispatch_async(dispatch_get_main_queue(), {
let queue:NSOperationQueue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
let result: NSString = NSString(data: data, encoding: NSUTF8StringEncoding)!
let expectedString = "special auth string"!
if(result == expectedString) {
self.callback.loginOK()
} else {
self.output.stringValue = result
}
return
})
})
элемент обратного вызова класса является родительский вид Контроллер илит, что порождает его, я затем закрыть окно входа в систему с помощью loginVC.view.window?.close()
из основного приложения окно. Это вызывает ошибку.