Ios 跨多个控制器更新对象/模型
我是swift的初学者。因此,在我的项目中,我使用了多个对象/模型,我在几乎所有的控制器中都使用了这些对象/模型。我的问题是,在任何一个控制器中更新对象/模型时,如何自动更新对象/模型(在所有控制器中)Ios 跨多个控制器更新对象/模型,ios,swift,swift3,swift2,updating,Ios,Swift,Swift3,Swift2,Updating,我是swift的初学者。因此,在我的项目中,我使用了多个对象/模型,我在几乎所有的控制器中都使用了这些对象/模型。我的问题是,在任何一个控制器中更新对象/模型时,如何自动更新对象/模型(在所有控制器中) 执行此操作的正确方法是什么?我将如何执行此操作?有按值传递和按引用传递的概念 对于您的问题,最合适的解决方案是使用passbyreferencetype 如果我们谈论Swift编程语言 class是引用类型&struct是值类型 因此,您的模型类应该使用classtype构建 代码示例 clas
执行此操作的正确方法是什么?我将如何执行此操作?有
按值传递和按引用传递的概念
对于您的问题,最合适的解决方案是使用passbyreference
type
如果我们谈论Swift编程语言
class
是引用类型&struct
是值类型
因此,您的模型类应该使用class
type构建
代码示例
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”
现在,您已经从SecondViewController
更改了bread name
的值,如果返回FirstViewController
并检查数组的first元素,则值将“修改”
你可以试试这个主意
其他解决方案:模型类的单例对象
谢谢。您应该为控制器中的对象添加观察者,并实现更新viewController UI的方法如果到处都使用相同的模型,为什么不使用该模型的Singleton对象呢。这样,无论在何处修改,都可以在所有控制器中获得更改。只有在您确定需求的情况下,才能执行此操作,因为这可能会导致无法跟踪的错误。您能否只更新一些代码,例如如何创建模型、使用模型对象和更新模型?