Objective C: store variables accessible in all vie

2019-01-26 02:20发布

问题:

Greetings,

I'm trying to write my first iPhone app. I have the need to be able to access data in all views. The data is stored when the user logs in and needs to be available to all views thereafter.

I'd like to create a static class, however I when I try to access the static class, my application crashes with no output on the console.

Is the only way to write data to file? Or is there another cleaner solution that I haven't thought of?

Many thanks in advance,

回答1:

Use a singleton class, I use them all the time for global data manager classes that need to be accessible from anywhere inside the application. You can create a simple one like this:

@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


回答2:

I don't know what you mean with "static class", but what you want is a singleton. See this question for various methods on how to set one up.