在我目前正在处理的项目中,创建并使用了许多UIViewController
个对象(某些UIViewController
子类)。相信我,它创造了很多问题。我正在研究它(一种重构)。
如我所见,大多数(那些)对象只需初始化一次并多次使用。由于我将从现在开始处理这个项目(并且项目持续时间很长),我如何确保每个UIViewController
子类对象一次只有一个。
我怀疑是否应该制作所有UIViewControllers
单身人士。如果是这样,我该如何实现呢。含义;我应该初始化applicationDidFinishedLaunching:WithOptions
或其中的所有对象吗?
另一个问题是:(我认为可能不是这样)项目中的所有UIViewController
都应该是单身吗?
答案 0 :(得分:1)
如果要确保只创建项目中的所有UIViewController对象,那么只有Singleton才能创建。而且你不需要在applicationDidFinishLaunching中初始化它们。您可以在任何地方(通常在您需要的地方)初始化它们。
转到正确创建单身人士的链接:http://cocoasamurai.blogspot.in/2011/04/singletons-your-doing-them-wrong.html
答案 1 :(得分:0)
如果你希望它们只是每个子类的一个对象,那么让它们成为单例并不是一个坏主意,
如果你让它们成为单身,不要在applicationDidFinishedLaunching:WithOptions
中初始化它们,而是在需要时立即初始化它们(阅读有关延迟初始化的更多信息)
但是我建议让每个webView成为Appdelegate的属性,这样无论何时需要它们,你都可以从appDelegate获取它们