Ios 自我表现不';请求后不能工作

Ios 自我表现不';请求后不能工作,ios,swift,uialertcontroller,Ios,Swift,Uialertcontroller,我正在尝试创建具有服务器连接的页面 一个简单的帖子(电子邮件和密码字段)和回复后,我需要向用户显示一个警报 此行导致异常: self.present(alerta2, animated:true, completion:nil) 这是我的密码: request.httpMethod = "POST" // Compose a query string let postString = "email=" + userEmail + "&password=" + userPassword

我正在尝试创建具有服务器连接的页面

一个简单的帖子(电子邮件和密码字段)和回复后,我需要向用户显示一个警报

此行导致异常:

self.present(alerta2, animated:true, completion:nil)
这是我的密码:

request.httpMethod = "POST" // Compose a query string
let postString = "email=" + userEmail + "&password=" + userPassword
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in
    if error != nil {
        self.mostraAlerta(mensagem: "Ocorreu um erro!")
        return
    }

    // Let's convert response sent from a server side script to a NSDictionary object:
    do {
        let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
        // print(json)
        if let parseJSON = json {
            let status = parseJSON["status"] as? String
            let msg = parseJSON["msg"] as? String
            let titulo = parseJSON["titulo"] as? String
            switch status {
            case "0"?:
                let alerta2 = UIAlertController(title: titulo, message: msg!, preferredStyle: .alert)
                let okAction = UIAlertAction(title: "OK", style: .default) { action in
                    self.dismiss(animated: true, completion: nil)
                }
                alerta2.addAction(okAction)
                self.present(alerta2, animated: true, completion: nil)
                // print("Status: OK")
                break
            case "1"?:
                print("Status: " + msg!)
                break
            default:
                print("Status: N/D")
                break
            }
            // print("Status: \(status)")
        }
    } catch {
        print(error)
    }
}
task.resume()
例外情况:

self.present(alerta2, animated:true, completion:nil)

错误:

libsystem\u kernel.dylib`\uu pthread\u kill:0x110b48d38
:movl$0x20000148,%eax;imm=0x20000148 0x110b48d3d
:movq%rcx,%r10 0x110b48d40
:syscall->0x110b48d42
:jae 0x110b48d4c;0x110b48d44
:movq%rax,%rdi 0x110b48d47
:jmp 0x110b41caf;cerror_nocancel 0x110b48d4c
:retq 0x110b48d4d
:nop 0x110b48d4e
:nop 0x110b48d4f
:没有


我刚刚得到了错误和修复

错误:

***由于未捕获的异常“NSInternalInconsistencyException”,正在终止应用程序,原因:'-[UIKeyboardTaskQueue 只能从主线程调用WaitUntillallTasksRefiefined]

解决方案:

OperationQueue.main.addOperation {
    self.present(alerta2, animated:true, completion:nil)
}

你能发布执行说明吗?
self.present(alerta2,动画:true,完成:nil)
需要在主线程中完成,因为它与UI相关。嗨,谢谢回复。我对SWIFT非常陌生,所以我正在跟踪一些复制的代码…错误:libsystem\u kernel.dylib`\u pthread\u kill:0x110b48d38:movl$0x20000148,%eax;imm=0x20000148 0x110b48d3d:movq%rcx,%r10 0x110b48d40:syscall->0x110b48d42:jae 0x110b48d4c;0x110b48d44:movq%rax,%rdi 0x110b48d47:jmp 0x110b41caf;cerror_nocancel 0x110b48d4c:retq 0x110b48d4d:nop 0x110b48d4e:nop 0x110b48d4f:nop编辑您的问题并将完整的错误消息放在那里。