【发布时间】:2018-09-17 10:11:39
【问题描述】:
我有两个班级,A 和 B: 在 A 类中,我有一个变量,每次满足某个条件时,它的值就会增加一。在 B 类中,我希望能够访问我通过实现委托管理的变量中的值(通过实现断点,我可以看到“valueRetrieved”持有正确的值)。
我的问题是如何使用 valueRetrieved 并将其作为 int 返回。我尝试创建一个不同的方法并调用 valueRetrieved 但我只得到 0 作为值。原因是因为我希望将该值链接到我的 ViewController 中的 UILabel。任何帮助将不胜感激,如果这是错误的方法,请告诉我。
protocol valueDelegate: class {
func retrieveValue -> Int
}
class B {
var valueRetrieved = 0
var valueToIncrement = 0
weak var delegate: valueDelegate?
func callToValueRetrieved() {
valueRetrieved = (self.delegate?.retrieveValue())!
if valueRetrieved == 6{
valueToIncrement += 1
}
func toUseValueIncremented -> Int{
//would want to return the final valueToIncrement as a int here
return""
}
A类
class A: valueDelegate{
func retrieveValue() -> Int {
return valueToDelegate
}
}
var valueToDelegate:Int = 0
var bClass: B = B()
func ready() -> Bool {
if //condition{
valueToDelegate += 1
bClass.delegate = self
bClass.callToValueRetrieved()
return true
}
【问题讨论】:
标签: swift delegation