iPhone应用程序,单身人士,在ViewControllers和&之间传递消息;应用设计

时间:2010-01-05 19:15:52

标签: iphone objective-c

我正在开发我的第一个应用程序并且它进展顺利,但我想知道我是否使用了正确的应用程序设计。

我正在构建一个应用程序,它使用navigationController来显示一对视图控制器。

在第一个viewController中创建一个CustomObject,并在连续的viewControllers中选择并设置此customObject的属性。

我创建了一个处理所有coredata操作的Singleton类。创建一个新对象。保存创建的对象等.Intonton具有属性currentObject。所有ViewControllers都可以访问这个单例。

因此,例如,在视图1中,用户选择按钮“新车”。 CoreDataSingleton创建可以使用currentObject访问的新汽车对象。

按下新视图,显示新车的默认值。

用户选项卡“选择颜色”,会显示一个新的ViewController,可以选择颜色。使用singleton.currentobject设置颜色,弹出视图,可以设置其他属性等等。最后调用用户选项卡“Save”和[Singleton saveCurrentObject]。

这种方法运行正常,但我一直在网上阅读很多帖子,人们说单身人士很糟糕,你可以做的最差等等......

您对此应用程序设计有何看法?如果单身人士不好,你会如何实现这种功能呢?

此致 米希尔

4 个答案:

答案 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)

嗯,您还有其他选择是序列化数据并将其保存在文件或数据库中,并在从视图到视图时重新加载数据;或者在推送新表视图时将当前对象作为参数传递。我真的想不出任何其他方法来处理这个问题。

这些都不比你目前的做法好。将对象作为变量传递是一种痛苦,序列化/反序列化是您正在做的事情的缓慢,痛苦的方式。

另一件好事是,在应用程序终止的情况下保存对象似乎也很容易。