CDTStore类是一个类集群,它抽象了本地和远程Cloudant数据存储的公共接口。本地数据存储使用CDTDatastore,远程数据存储使用REST API来修改远程数据存储。
我需要在用户默认值中保存CDTStore对象,以便以后检索它。 (最初的原因是:CDTStore对象在应用程序在一段时间后转到后台后被销毁,因此不再允许将对象保存到db。)
该类的标题如下所示:
...
@interface CDTStore : NSObject
...
我看过这个链接: http://iphonedevsdk.com/forum/iphone-sdk-development/16205-saving-class-nsuserdefaults.html 他的代码(smithdale87):
- (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的情况下,事情要复杂得多。有更简单的方法吗?或者,如果没有,如何使用他的方法呢?