创建可在应用程序的任何位置使用的NSMutableDictionary

时间:2013-02-12 11:29:48

标签: iphone ios objective-c

我希望有一个NSMutableDictionary可以从网络上获取数据,并且可以从应用中的任何视图控制器获得。

换句话说,我应该可以在应用程序的任何部分中获取和设置dictionary中的信息。

我已经阅读了几个解决方案,一个是创建一个包含该字典的.h文件,然后将该.h文件添加到.pch中,以便它可以在任何地方使用。

第二种选择是在AppDelegate创建字典,但人们说这是一个糟糕的解决方案。

请告知最佳方法。谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用单例类来共享数据 请检查此Singleton class

MyManger.h

#import <foundation/Foundation.h>

@interface MyManager : NSObject {
NSMutableDictionary *_dict
}

@property (nonatomic, retain) NSMutableDictionary *dict;

 + (id)sharedManager;  
@end 

MyManger.m

#import "MyManager.h"

static MyManager *sharedMyManager = nil;

 @implementation MyManager

 @synthesize dict = _dict;

#pragma mark Singleton Methods  

+ (id)sharedManager {
 @synchronized(self) {
    if(sharedMyManager == nil)
      sharedMyManager = [[super allocWithZone:NULL] init];
 }
return sharedMyManager;
} 

- (id)init {
   if (self = [super init]) {
  dict = [[NSMutableDictionary alloc] init];
   }
 return self;
}   

您可以像这样随处访问您的词典

   [MyManager sharedManager].dict

答案 1 :(得分:-1)

您可以在app delegate中创建它并设置其setter和getter。每次你需要访问它时,你可以制作主代表的实例和实例

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];