Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift ';n内部一致性异常';,原因:';只在主线程上运行';斯威夫特4_Swift_Swift4 - Fatal编程技术网

Swift ';n内部一致性异常';,原因:';只在主线程上运行';斯威夫特4

Swift ';n内部一致性异常';,原因:';只在主线程上运行';斯威夫特4,swift,swift4,Swift,Swift4,嘿,伙计们,想知道你们是否可以帮我调试这个,这个错误出现了,但只有当我将ui文本视图添加到视图控制器时,这里才是视图控制器代码的全部,正如你们所看到的,我尝试了dispatchQueue,但什么也没做 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() Dispat

嘿,伙计们,想知道你们是否可以帮我调试这个,这个错误出现了,但只有当我将ui文本视图添加到视图控制器时,这里才是视图控制器代码的全部,正如你们所看到的,我尝试了dispatchQueue,但什么也没做

import UIKit

    class ViewController: UIViewController {

        override func viewDidLoad() {
            super.viewDidLoad()

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

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

在viewDidLoad之外声明变量

    import UIKit

    class ViewController: UIViewController {

       var textview: UITextView!


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

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

看起来您不是从主线程使用此控制器。我认为您正试图从某个闭包或异步调用中显示控制器。您必须确保UI调用仅来自主线程


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

仍然会出现相同的错误。还有什么我可以添加的,以帮助人们找出什么是错误的吗添加了调试日志为混乱道歉layout@BenMarkSilkstoneKaushik的意思是将日志添加到你的问题中,而不是试图将其添加到他们的回答中我编辑了问题以添加日志,很抱歉,我是新发布堆栈溢出的。请显示使用此控制器的代码。您需要声明
weak var textview:UITextView,这有点奇怪
DispatchQueue.main.async
viewDidLoad
中!你为什么要做这样的事?我是在阅读了其他出现类似错误的线程后做的。这对我来说没有多大意义,但我想我还是试试看,因为其他人说它解决了他们的问题。你应该显示导致错误的原始代码,而不显示任何你尝试过的修复。这是你的
ViewController
吗运行应用程序时加载的第一个视图控制器?意思是,这是您的入口点视图控制器吗?如果没有,请显示您是如何导航到此视图控制器的。我通常只想将uitextview添加到第二个视图控制器中,我已经用一个控制器成功地完成了此操作,并且只想用另一个控制器完成此操作,只是它抛出了此错误。我最初只是将文本视图添加到控制器中,没有任何代码。由于试图找到帮助,其他任何操作都已完成online@BenMarkSilkstone请演示如何调用触发错误的控制器。或者它只是情节提要中的“显示”序列?我在情节提要中使用“显示”序列,一旦确定了用户通知状态,就会执行该序列。@BenMarkSilkstone我明白了,现在我认为这是您出现问题的原因:)请,显示从用户通知状态执行此步骤的代码。如果设置。授权状态==.authorized{i=i+1 self.performsgue(带标识符:“位置”,发件人:self)//已授予通知权限}