我遇到了这类问题:
通过我的应用程序,我可以将我的iPhone与BLE
设备连接起来,所以当我将他们连接在一起时,我会被转移到另一个视图中。
在这个视图中,我总是要检查我是否已经在线程函数中连接了。
如果我的连接丢失,我可以调用performSegueWithIdentifier
方法。
但是......当我这样做时,xCode会给我一个糟糕的报告:
此应用程序正在从后台修改autolayout引擎 线程,这可能导致引擎损坏和奇怪的崩溃。这个 将在未来版本中引发异常。
这是我的简短代码:
override func viewDidLoad(){
super.ViewDidLoad()
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
while(true){
if(serial.connectedPeripheral == nil){
self.GoBackToBLE()
}
}
}
}
我想要确切地说我不能使用方法dispatch_get_main_queue
,因为如果我使用它我不能在视图中做任何其他事情,例如,如果我有一个按钮我想成为能够按下它,如果我使用dispatch_get_main_queue
方法,我就可以。
有什么建议吗?非常感谢
答案 0 :(得分:1)
您不应该在let result1 = Test(testA: "{\"major\": 1, \"minor\": 2}", testB: "http://google.com")
let result2 = result1.toString()!
print("result2=\n\(result2)")
中执行与UI相关的任何操作
你可以把事情分成两部分,一部分与UI有关,另一部分正在进行网络调用/计算等。
dispatch_get_global_queue