Swift ';n内部一致性异常';,原因:';只在主线程上运行';斯威夫特4
嘿,伙计们,想知道你们是否可以帮我调试这个,这个错误出现了,但只有当我将ui文本视图添加到视图控制器时,这里才是视图控制器代码的全部,正如你们所看到的,我尝试了dispatchQueue,但什么也没做Swift ';n内部一致性异常';,原因:';只在主线程上运行';斯威夫特4,swift,swift4,Swift,Swift4,嘿,伙计们,想知道你们是否可以帮我调试这个,这个错误出现了,但只有当我将ui文本视图添加到视图控制器时,这里才是视图控制器代码的全部,正如你们所看到的,我尝试了dispatchQueue,但什么也没做 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() Dispat
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.asyncviewDidLoad
中!你为什么要做这样的事?我是在阅读了其他出现类似错误的线程后做的。这对我来说没有多大意义,但我想我还是试试看,因为其他人说它解决了他们的问题。你应该显示导致错误的原始代码,而不显示任何你尝试过的修复。这是你的ViewController
吗运行应用程序时加载的第一个视图控制器?意思是,这是您的入口点视图控制器吗?如果没有,请显示您是如何导航到此视图控制器的。我通常只想将uitextview添加到第二个视图控制器中,我已经用一个控制器成功地完成了此操作,并且只想用另一个控制器完成此操作,只是它抛出了此错误。我最初只是将文本视图添加到控制器中,没有任何代码。由于试图找到帮助,其他任何操作都已完成online@BenMarkSilkstone请演示如何调用触发错误的控制器。或者它只是情节提要中的“显示”序列?我在情节提要中使用“显示”序列,一旦确定了用户通知状态,就会执行该序列。@BenMarkSilkstone我明白了,现在我认为这是您出现问题的原因:)请,显示从用户通知状态执行此步骤的代码。如果设置。授权状态==.authorized{i=i+1 self.performsgue(带标识符:“位置”,发件人:self)//已授予通知权限}