在过去的18个月中,我一直在尝试将所有代码从ViewController中移除,使其更像MVC。 (因此标题)
通过在一个Class对象中执行以下操作,我自己迈出了小步,但现在我想进一步细分
一个非常普通的示例:一个文件包含数据
struct Data {
var x = 0
var y = 0
}
一个文件用于操作
class Adder {
var myObject = MyClass()
var z = 1
func addThem() {
z = myObject.x + myObject.y
}
}
现在,对于ViewController的重要部分:
var data = Data()
var adder = Adder()
@IBAction func buttonPressed(sender: UIButton) {
// user input via textfield
data.x = Int(numeralOne.text!)!
data.y = Int(numeralTwo.text!)!
adder.addThem() // *
answerLabel.text = String(adder.z)
}
最终,我想省略带有星号的行。我认为OO将(数据)封装为(adder),使得adder.z可以在后台自动更新,而无需涉及ViewController。这样,减法器类(例如)可以对相同的两个结构属性进行操作。
我的问题?如何才能从VC正确引用它们。
PS。如果我在函数中包含return语句,则没有区别。
最佳答案
从您的代码中尚不清楚Data
结构和MyClass
之间到底是什么关系,但是如果MyClass
对象具有所需的x&y值,则以下内容将起作用
类MyClass {
var x = 1
var y = 2
}
类加法器{
var myObject = MyClass()
var z:Int {
返回myObject.x + myObject.y
}
}
让adder = Adder()
打印(adder.z)
关于ios - 运行!来自VCVCVC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34366192/