如何确保只创建一次项目中的所有UIViewController对象?

时间:2012-06-21 07:50:57

标签: iphone objective-c ios architecture uiviewcontroller

在我目前正在处理的项目中,创建并使用了许多UIViewController个对象(某些UIViewController子类)。相信我,它创造了很多问题。我正在研究它(一种重构)。

如我所见,大多数(那些)对象只需初始化一次并多次使用。由于我将从现在开始处理这个项目(并且项目持续时间很长),我如何确保每个UIViewController子类对象一次只有一个。

我怀疑是否应该制作所有UIViewControllers单身人士。如果是这样,我该如何实现呢。含义;我应该初始化applicationDidFinishedLaunching:WithOptions或其中的所有对象吗?

另一个问题是:(我认为可能不是这样)项目中的所有UIViewController都应该是单身吗?

2 个答案:

答案 0 :(得分:1)

如果要确保只创建项目中的所有UIViewController对象,那么只有Singleton才能创建。而且你不需要在applicationDidFinishLaunching中初始化它们。您可以在任何地方(通常在您需要的地方)初始化它们。

转到正确创建单身人士的链接:http://cocoasamurai.blogspot.in/2011/04/singletons-your-doing-them-wrong.html

来源:Make UIViewController a singleton?

答案 1 :(得分:0)

如果你希望它们只是每个子类的一个对象,那么让它们成为单例并不是一个坏主意,

如果你让它们成为单身,不要在applicationDidFinishedLaunching:WithOptions中初始化它们,而是在需要时立即初始化它们(阅读有关延迟初始化的更多信息)

但是我建议让每个webView成为Appdelegate的属性,这样无论何时需要它们,你都可以从appDelegate获取它们