NSKeyedArchiver with singleton
===

I want to use NSKeyedArchiver in my app but I have a doubt: I'm using a singleton class named Context to store (obviously) the context of my app, such as app options (difficulty, time limit...). I'm doing it with a class Options stoerd in this context. Due to I'm using ARC, my singleton Context class looks like follows:

    @interface Context : NSObject

    @property (nonatomic, retain) Options *options;

    @end

and its implementation:

    @implementation Context

    @synthesize options = _options;

    + (Context *)sharedInstance
    {
        static Context *sharedInstance = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            sharedInstance = [[Context alloc] init];
            // Do any other initialisation stuff here
        });
        return sharedInstance;
    }

I had thought to make Options class implement NSCoder protocol and store it with NSKeyedArchiver and restore it with NSKeyedArchiver and then set this restored object in the context by doing this:

    [[Context sharedInstance] setOptions:HERE_RESTORED_OBJECT];

But I think that the correct option is to store the context class instead, because actually it contains only Options object but in the future if I add a new object to the context (for example a class Punctuation) I would have to store this new object.

Well, the problem? The problem is that if can make that Conttext class implements <NSCoder> protocol to store it with NSKeyedArchiver but how I can restore it it this class is a Singleton? I mean, I can't do it in the coommon way:

    NSData *theData = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

Because It's suppossed to access the context object with method "sharedInstance"...

I hope I explained well. Thank you in advance