2013-02-12 33 views
0

我想有一个NSMutableDictionary,将它拉是从网上的数据,将可从任何应用程序的视图控制器。创建的NSMutableDictionary,将提供来自世界各地的应用

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

我读过一些解决方案,这一点,一个是创建一个.h文件中,将包含字典,然后该h文件添加到.PCH所以这将是可在任何地方。

而第二个选项是AppDelegate创建字典,但是有人说这是一个坏的解决方案。

请告知最好的方法来做到这一点。谢谢!

+0

UIMutableDictionary或的NSMutableDictionary ...... – Rajneesh071 2013-02-12 11:37:38

+0

人的情况下,这是令人尴尬的。我想,我一直工作太多:) – 2013-02-12 11:46:40

+0

哈哈...保持它的男人:) – Rajneesh071 2013-02-12 11:50:18

回答

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 
+0

这听起来很有趣,但由于我还是一个新手,现在听起来太复杂了。有没有更深入的教程,你可以推荐? – 2013-02-12 11:53:58

+1

[这将帮助你(http://klanguedoc.hubpages.com/hub/iOS-5-How-To-Share-Data-Between-View-Controllers-using-a-Singleton) – 2013-02-12 11:59:28

+0

@Anil感谢示例和代码。我现在接受你的答案,并会尝试在我的应用程序中使用它。但我相信我会回来的问题:) – 2013-02-12 12:04:18

-1

你可以在应用程序委托创建并设置其getter和setter方法。并且每次需要存取权限它的时候你可以和主委托

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