我希望有一个NSMutableDictionary
可以从网络上获取数据,并且可以从应用中的任何视图控制器获得。
换句话说,我应该可以在应用程序的任何部分中获取和设置dictionary
中的信息。
我已经阅读了几个解决方案,一个是创建一个包含该字典的.h文件,然后将该.h文件添加到.pch中,以便它可以在任何地方使用。
第二种选择是在AppDelegate
创建字典,但人们说这是一个糟糕的解决方案。
请告知最佳方法。谢谢!
答案 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];