保存并加载单例

时间:2013-12-23 12:17:23

标签: objective-c xcode singleton

我创建了一个像这样的单身人士:

+ (instancetype)sharedDataStore {

static SSDataStore *_sharedDataStore = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    _sharedDataStore = [[self alloc] init];
});

return _sharedDataStore;
}

在文档文件夹中保存和加载文件的最佳方法是什么? 我尝试用NSKeyedArchiver保存它,但我不知道如何加载它。我该怎么办而不是

 _sharedDataStore = [[self alloc] init];

1 个答案:

答案 0 :(得分:1)

要恢复单身人士的状态,您需要实施initWithCoder协议中的NSCoding方法。类似的东西:

- (id)initWithCoder:(NSCoder *)decoder {
    self = [super init];
    if (!self) {
        return nil;
    }

    self.property1 = [decoder decodeObjectForKey:@"property1"];
    self.property2 = [decoder decodeObjectForKey:@"property2"];

    return self;
}