1,存储的mode 实现nsCode协议 重写
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if(self != nil)
{
self.activityImgUrl = [aDecoder decodeObjectForKey:ACTIVITYIMG];
self.activityId = [aDecoder decodeObjectForKey:ACTIVITYID];
self.activityName = [aDecoder decodeObjectForKey:ACTIVUTYNAME];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.activityImgUrl forKey:ACTIVITYIMG];
[aCoder encodeObject:self.activityId forKey:ACTIVITYID];
[aCoder encodeObject:self.activityName forKey:ACTIVUTYNAME];
}
使用nsUserDefaults存储对象
+ (void)saveObject:(id)obj withKey:(NSString *)key
{
NSUserDefaults *udf = [NSUserDefaults standardUserDefaults];
//如果是自定义对象放在数组中,先要转成NSData再保存
if([obj isKindOfClass:[NSArray class]]){
//如果数组为空,return
if([(NSArray *)obj count] <= 0){
return ;
}
//如果数组装载 Model对象
if ([[(NSArray *)obj objectAtIndex:0] isKindOfClass:[BaseModel class]]){
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:obj];
[udf setObject:data forKey:key];
}else{ //单纯的数组
[udf setObject:obj forKey:key];
}
[udf synchronize];
return ;
}
if([obj isKindOfClass:[BaseModel class]]){ //如果是自定义对象,先要转成NSData再保存
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:obj];
[udf setObject:data forKey:key];
}else{
[udf setObject:obj forKey:key];
}
[udf synchronize];
}