Dispatchqueue后台线程更新在iOS 12上不起作用

时间:2018-09-19 10:01:09

标签: swift4 grand-central-dispatch xcode10 ios12 dispatch-queue

我有以下一段代码可以在 <el-card class="box-card"> <el-input @blur="focused.mycheck = true" v-model="myvalue" :class="{error: !myvalue && focused.mycheck}"></el-input> <span v-show="!myvalue && focused.mycheck" class="error">{{rules.mycheck[0].message}}</span> </el-card> </div> 上正常运行,但是在https://<stash-url>/stash/rest/api/latest/projects/<project-ID>/repos/<repo-slug>/commits?until=<my-target-feature-branch>&limit=0&start=0 上无法运行

11.4.1

有人可以在这里指出我的错误吗?

更新

如果我像这样在代码块中添加打印语句,代码似乎可以正常工作

12

1 个答案:

答案 0 :(得分:0)

最初来自here,我使用了

func guaranteeMainThreadSynchronousExecution(_ block: () -> ()) {
    if Thread.isMainThread {
        block()
    } else {
        DispatchQueue.main.sync {
            block()
        }
    }
}

并像这样更新我的代码

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
    self.guaranteeMainThreadSynchronousExecution {
        self.background.async {
            let node = self.myKit.extractNode(anchor:anchor)
            self.debugMeshNode.addChildNode(node) // no node added on UI in iOS12
        }
    }
}

然后它可以完美地工作。希望这对某人有帮助。