swift2 跨多个控制器更新对象/模型

3ks5zfa0  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(174)

我是swift的初学者。所以在我的项目中,我使用了多个对象/模型,我几乎在所有的控制器中都使用过。我的问题是,当我的对象/模型在任何一个控制器中更新时,我如何自动更新它(在所有的控制器中)?
正确的执行方式是什么,我该如何去做?

wz8daaqr

wz8daaqr1#

Pass By Value & Pass By Reference的概念。
最适合您的问题的解决方案是使用Pass By Reference类型。
如果我们谈论Swift programming language
class为引用类型,struct为值类型。
所以,你的模型类应该用class类型来构建。
代码示例。

class Dog {
    var breed : String = ""
    var sub_breed = [String]()
    init(_breed:String,_sub_breed:[String]) {
        self.breed = _breed
        self.sub_breed = _sub_breed
    }
}

FirstViewController:

var dogs : [Dog] = [Dog(_breed: “Original”, _sub_breed: [“subBreedType1”, “subBreedType2”])]

SecondViewController: // You are passing reference of dogs to SecondVC

var dogs : [Dog] = []

dogs[0].breed = “Modified”

现在,您已将breed name的值从SecondViewController更改为FirstViewController,如果返回到FirstViewController并检查数组的first element,则值将为“Modified”
你可以试试这个主意。
其他解决方案:您的Model classSingleton object

  • 谢谢-谢谢

相关问题