1

我是 swift 和应用程序开发的新手,并且有一个关于如何最好地为一个简单的应用程序组织数据的问题。

我有一个为对象定义的数据模型,Choice。

该应用程序有多个视图控制器。其中两个访问/修改一组选项。其他人访问和修改此数组中的单个选项。因此,它们都在不同程度上从这一数据集工作。

现在,其中一个视图控制器(表视图)几乎“拥有”并保存数据。其余的视图控制器只是来回传递数据,这有点疯狂。

我想做的是拥有一个他们都在访问的数据源。但我不想在 AppDelegate 中使用全局变量。

我目前的想法是,我将为所有这些视图控制器创建一个父类来继承。此类将拥有数据和所有数据处理功能。

这个一般组织是否有效,是否符合最佳实践?有没有其他方法可以更好地解决这个问题?您的任何建议将不胜感激。谢谢!

4

1 回答 1

3

您提到的具有基本视图控制器的方法在这里并不合适,并且从它派生的方法也会产生问题,例如复制数据,并且如果您想从非视图控制器访问其他地方的数据,还可能会导致问题。

您将需要有一个模型层,可以控制对模型(数据)对象的访问。例如,您可以将模型类称为 ChoiceManager 并将其设为 Singleton。

class ChoiceManager{

  //The singleton instance
  static let sharedInstance = ChoiceManager()

  var choices : [Choices] = []

  //Logic to create Choice objects - may be parsing from a JSON, or from a network etc



}

现在在您的项目中,您可以访问相同的 ChoiceManager,只需说

ChoiceManager.sharedInstance

以及访问选项:

ChoiceManager.sharedInstance.choices
于 2016-04-29T04:12:48.223 回答