Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 跨多个控制器更新对象/模型_Ios_Swift_Swift3_Swift2_Updating - Fatal编程技术网

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

Ios 跨多个控制器更新对象/模型,ios,swift,swift3,swift2,updating,Ios,Swift,Swift3,Swift2,Updating,我是swift的初学者。因此,在我的项目中,我使用了多个对象/模型,我在几乎所有的控制器中都使用了这些对象/模型。我的问题是,在任何一个控制器中更新对象/模型时,如何自动更新对象/模型(在所有控制器中) 执行此操作的正确方法是什么?我将如何执行此操作?有按值传递和按引用传递的概念 对于您的问题,最合适的解决方案是使用passbyreferencetype 如果我们谈论Swift编程语言 class是引用类型&struct是值类型 因此,您的模型类应该使用classtype构建 代码示例 clas

我是swift的初学者。因此,在我的项目中,我使用了多个对象/模型,我在几乎所有的控制器中都使用了这些对象/模型。我的问题是,在任何一个控制器中更新对象/模型时,如何自动更新对象/模型(在所有控制器中)


执行此操作的正确方法是什么?我将如何执行此操作?

按值传递和按引用传递的概念

对于您的问题,最合适的解决方案是使用
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对象呢。这样,无论在何处修改,都可以在所有控制器中获得更改。只有在您确定需求的情况下,才能执行此操作,因为这可能会导致无法跟踪的错误。您能否只更新一些代码,例如如何创建模型、使用模型对象和更新模型?