'NSInternalInconsistencyException',原因:'只在主线程上运行!'迅速4

时间:2018-02-26 06:56:14

标签: swift swift4

嘿伙计们只是想知道你是否可以帮助我调试这个,这个错误出现了但是只有当我向视图控制器添加一个ui文本视图时,我才能看到控制器代码,因为你可以看到我尝试了dispatchQueue但是什么都不做。

import UIKit

    class ViewController: UIViewController {

        override func viewDidLoad() {
            super.viewDidLoad()

            DispatchQueue.main.async {
            weak var textview: UITextView!
            }
        }

        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    }

2 个答案:

答案 0 :(得分:1)

在viewDidLoad

之外声明变量
    import UIKit

    class ViewController: UIViewController {

       var textview: UITextView!


                override func viewDidLoad() {
                    super.viewDidLoad()
                }

                override func didReceiveMemoryWarning() {
                    super.didReceiveMemoryWarning()
                }
            }

答案 1 :(得分:0)

看起来您正在使用非主线程中的此控制器。我认为你试图通过一些关闭或异步调用来显示控制器。您必须确保您的UI仅从主线程调用。

你也可以调试它。在创建/实例化此控制器设置断点并注意XCode中的调试导航器之前,您将能够看到程序停止的位置,是否是此主线程。enter image description here