我正在开发我的第一个应用程序并且它进展顺利,但我想知道我是否使用了正确的应用程序设计。
我正在构建一个应用程序,它使用navigationController来显示一对视图控制器。
在第一个viewController中创建一个CustomObject,并在连续的viewControllers中选择并设置此customObject的属性。
我创建了一个处理所有coredata操作的Singleton类。创建一个新对象。保存创建的对象等.Intonton具有属性currentObject。所有ViewControllers都可以访问这个单例。
因此,例如,在视图1中,用户选择按钮“新车”。 CoreDataSingleton创建可以使用currentObject访问的新汽车对象。
按下新视图,显示新车的默认值。
用户选项卡“选择颜色”,会显示一个新的ViewController,可以选择颜色。使用singleton.currentobject设置颜色,弹出视图,可以设置其他属性等等。最后调用用户选项卡“Save”和[Singleton saveCurrentObject]。
这种方法运行正常,但我一直在网上阅读很多帖子,人们说单身人士很糟糕,你可以做的最差等等......
您对此应用程序设计有何看法?如果单身人士不好,你会如何实现这种功能呢?
此致 米希尔
答案 0 :(得分:1)
我没有编写太多的核心数据应用程序,但是,我可以告诉您,单例适合处理您需要访问的全局数据。与appdelegate方法相反,这是首选方法。
See this thread for some thoughts on using singletons for core data apps.
答案 1 :(得分:1)
阅读Singletons与AppDelegates是一个很好的article。它解释了为什么Singletons在大多数情况下是实现全局访问变量的更好方法,然后使用AppDelegates。
答案 2 :(得分:0)
答案 3 :(得分:0)
嗯,您还有其他选择是序列化数据并将其保存在文件或数据库中,并在从视图到视图时重新加载数据;或者在推送新表视图时将当前对象作为参数传递。我真的想不出任何其他方法来处理这个问题。
这些都不比你目前的做法好。将对象作为变量传递是一种痛苦,序列化/反序列化是您正在做的事情的缓慢,痛苦的方式。
另一件好事是,在应用程序终止的情况下保存对象似乎也很容易。