目标C:存储所有视图中都可访问的变量

时间:2011-02-18 15:33:43

标签: iphone objective-c class static

问候,

我正在尝试编写我的第一个iPhone应用程序。我需要能够访问所有视图中的数据。用户登录时会存储数据,之后需要对所有视图都可用。

我想创建一个静态类,但是当我尝试访问静态类时,我的应用程序在控制台上没有输出时崩溃。

是将数据写入文件的唯一方法吗?或者是否有其他我没想过的清洁解决方案?

非常感谢,

2 个答案:

答案 0 :(得分:7)

使用单例类,我总是将它们用于需要从应用程序内部的任何位置访问的全局数据管理器类。您可以创建一个这样的简单:

@interface NewsArchiveManager : NetworkDataManager
{
}

+ (NewsArchiveManager *) sharedInstance;
@end

@implementation NewsArchiveManager

- (id) init
{
    self = [super init];
    if ( self ) 
    {
         // custom initialization goes here
    }

    return self;
}


+ (NewsArchiveManager *) sharedInstance
{
    static NewsArchiveManager *g_instance = nil;

    if ( g_instance == nil )
    {
        g_instance = [[self alloc] init];
    }

    return g_instance;
}


- (void) dealloc
{
    [super dealloc];
}

@end

答案 1 :(得分:1)

我不知道你对“静态类”的意思,但你想要的是singleton。有关如何设置一个方法的各种方法,请参阅this question