上下文: 我推廣了我剛剛繼承的iOS項目的一些方面。我想要的一件事是從應用程序中的任何地方訪問的數據結構,用戶控件可以訪問應用程序特定的樣式信息(例如UIColor
定義等)。正確放置'全局'數據結構的地方
問題:如果我定義含有必須是「全局」訪問數據的數據結構,其中被認爲是實例化這個對象,什麼是讓其他對象獲得基準以正確的方式在正確的地方到它?有點研究可以看出以下幾種選擇:
- 創建數據結構作爲我的
AppDelegate
的屬性;在applicationDidFinishLaunching
上初始化;通過((myAppDelegate *)[UIApplication sharedApplication].delegate).getStyleDefs
訪問它。 - 使結構成爲一個全局單例(從
AppDelegate
實例化延遲加載或熱切地加載)。
我還有哪些其他選擇?
是的,我會閱讀完全相同的文章,他是一個很好的例子。麻煩的是,我也讀過一些(非常熱情!)將全球單身族完全妖魔化的概念文章和博客!好像Objective-C的社會是不是對他們的其他一些人!..謝謝你的投入在這裏:) – sjwarner 2012-07-25 09:47:16
單身人士在某些情況下是有用的,和Cocoa使用它們相當多的(例如NSUserDefaults的)。 – Andrei 2012-07-25 10:26:40
@sjwarner我在我的答案中增加了一些關於我對單身辯論的利弊的看法。 – 2012-07-25 17:10:52