2014-07-13 50 views
-3

我遇到了字典問題,我想要一個字典只創建一次,以將數據保存到plist文件。那麼如何創建單例字典?在此先感謝如何創建nsdictionary單例值

+0

你需要這本詞典是一個全局常量還是一個類的方法? – Keenle

+0

我需要全局常量 – HIEU

+0

創建一個單例類,並在那裏聲明NSDictionary..and你可以在應用程序的任何地方獲得它們的值。 –

回答

0

您可以在AppDelegate中創建一個NSDictionary實例,將此字典作爲類的公共屬性。

@property (nonatomic, strong) NSMutableDictionary *myDict; 

將此初始化爲- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法。

現在通過訪問它的應用程序 -

((AppDelegate *) [UIApplication sharedApplication].delegate).myDict 

只有一個實例會爲你而創建。

0

正如你在評論中迴應,你需要一個全局變量。貝婁是收據。

這裏是你可以做什麼:

  1. AppDelegate.h文件的頂部添加變量的extern定義:

    的extern的NSMutableDictionary * MyGlobalDictionary;

  2. AppDelegate.m文件的頂部添加變量定義:

    的NSMutableDictionary * MyGlobalDictionary;

  3. 現在你需要初始化字典,可以在你的initialize方法中完成AppDelegate。在AppDelegate.m添加此某處@implemetaionAppDelegate的:

    + (void)initialize { MyGlobalDictionary = [[NSMutableDictionary alloc] init]; }

使用方法:

當你需要它,只是#importAppDelegate.h文件。貝婁是一個例子,如何使用:

NSLog(@"%@", [MyGlobalDictionary objectForKey:@"someKey"]); 

重要:

在創建單身是非常容易的就被認爲是一種不好的做法。考慮將字典傳遞給可能對其感興趣的對象。或者,如果它是不可避免的,可能會定義一些全局類單例。