将CDTStore(NSObject子类)保存到目标C中的NSUserDefaults?

时间:2015-08-18 18:19:24

标签: ios objective-c iphone mobile ios8

CDTStore类是一个类集群,它抽象了本地和远程Cloudant数据存储的公共接口。本地数据存储使用CDTDatastore,远程数据存储使用REST API来修改远程数据存储。

我需要在用户默认值中保存CDTStore对象,以便以后检索它。 (最初的原因是:CDTStore对象在应用程序在一段时间后转到后台后被销毁,因此不再允许将对象保存到db。)

该类的标题如下所示:

...
@interface CDTStore : NSObject
...

我看过这个链接: http://iphonedevsdk.com/forum/iphone-sdk-development/16205-saving-class-nsuserdefaults.html 他的代码(smithdal​​e87):

- (void)encodeWithCoder:(NSCoder *)encoder
{
       //Encode properties, other class variables, etc
    [encoder encodeObject:self.question forKey:@"question"];
    [encoder encodeObject:self.categoryName forKey:@"category"];
    [encoder encodeObject:self.subCategoryName forKey:@"subcategory"];
}
- (id)initWithCoder:(NSCoder *)decoder
{
    self = [super init];
    if( self != nil )
    {
           //decode properties, other class vars
        self.question = [decoder decodeObjectForKey:@"question"];
        self.categoryName = [decoder decodeObjectForKey:@"category"];
        self.subCategoryName = [decoder decodeObjectForKey:@"subcategory"];
    }
    return self;
}

但问题是,在CDTStore的情况下,事情要复杂得多。有更简单的方法吗?或者,如果没有,如何使用他的方法呢?

0 个答案:

没有答案