gpt4 book ai didi

ios - swift 如何等到值改变

转载 作者:搜寻专家 更新时间:2023-11-01 06:58:25 26 4
gpt4 key购买 nike

我正在编写一个应用程序来测试您的古典希腊语能力。我有几个 View Controller 。在测试 View Controller 中,我有一个巨大的“开始”按钮,按下它会启动一系列代码,如下所示:

@IBAction func test(_ sender: Any) {
beginBtn.isHidden = true
beginBtn.isEnabled = false
answerOne.isHidden = false
answerTwo.isHidden = false
answerThree.isHidden = false
answerFour.isHidden = false
data.currentNumOQue = (data.qCQ + data.qWQ + data.qSQ)
if data.chooseCAlertDataLoaded == false {
data.chooseCharacterQuestionType.addAction(data.chooseCharacterQuestionTypeEngGrk)
data.chooseCharacterQuestionType.addAction(data.chooseCharacterQuestionTypeGrkEng)
data.chooseCAlertDataLoaded = true
} else {
print("not first question")
}
while data.currentQC <= data.qCQ {
present(data.chooseCharacterQuestionType, animated: false, completion: nil)
DispatchQueue.global(qos: .background).async {
while data.chooseCAlertReturnsEngGrk == nil {

}
DispatchQueue.main.sync {
if data.chooseCAlertReturnsEngGrk == true {
//Eng-Grk QUestion
data.chooseCAlertReturnsEngGrk = nil
} else {
//Grk=Eng QUestion
data.chooseCAlertReturnsEngGrk = nil
}
}
}
data.currentQC += 1
data.currentQ += 1
}
data.currentQC = 1
data.currentQW = 1
data.currentQS = 1

}

任何人都可以帮助我如何等到值 chooseCAlertReturnsEngGrk 不为 nil 并继续执行,但这样做时不会“卡住”UI?

最佳答案

覆盖 didSet 来调用一些函数..然后在那个回调函数中,用参数做任何你想做的事..

class DataSomething {
var chooseCAlertReturnsEngGrkObserver: ((_ newValue: SomeTime?) -> Void)?

var chooseCAlertReturnsEngGrk: SomeType? = nil {
didSet {
chooseCAlertReturnsEngGrkObserver?(chooseCAlertReturnsEngGrk)
}
}
}

关于ios - swift 如何等到值改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52023089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com