我是 Swift 和应用程序开发的新手,并且对如何最好地组织简单应用程序的数据有疑问。
我为一个对象 Choice 定义了一个数据模型。
该应用程序有多个 View Controller 。其中两个访问/修改一系列选项。其他人访问并修改该数组中的单个选择。因此,它们都在不同程度上基于这一数据集。
现在,这些 View Controller 之一( TableView )几乎“拥有”并保存数据。其余的 View Controller 只是来回传递数据,这有点疯狂。
我想做的是拥有一个他们都可以访问的数据源。但我不想在 AppDelegate 中使用全局变量。
我目前的想法是,我将为所有这些 View Controller 创建一个父类来继承。该类将拥有数据和所有数据处理函数。
这个总体组织是否有效,是否符合最佳实践?还有其他方法可以更好地解决这个问题吗?如果您有任何建议,我们将不胜感激。谢谢!
最佳答案
您提到的有基本 View Controller 的方法在这里并不合适,并且从它派生的方法也会产生复制数据等问题,如果您想从非 View Controller 访问其他地方的数据,也可能会导致问题。
您将需要一个模型层来实现对模型(数据)对象的受控访问。例如,您可以考虑一个模型类(例如 ChoiceManager)并将其设为单例。
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
}
现在,在您的项目中,您只需说
即可访问相同的 ChoiceManagerChoiceManager.sharedInstance
还有访问选项:
ChoiceManager.sharedInstance.choices
关于swift - 如何快速组织 View Controller 之间共享的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929072/