我想在NSUserDefaults中保存一组视图控制器,但我不确定如何:
[[NSUserDefaults standardUserDefaults] setObject:tabBarController.viewControllers forKey:@"tabOrder"];
当我阅读上面一行时,我的tabBarController.viewControllers是空白的。
答案 0 :(得分:2)
此数组中的视图控制器不可序列化,因此不会保存到NSUserDefaults
。
value参数只能是属性列表对象:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。对于NSArray和NSDictionary对象,其内容必须是属性列表对象。请参阅“属性列表编程指南”中的“什么是属性列表?”。
您应该在下次加载时重新初始化视图控制器。但是,您可以将他们的数据序列化为NSUserDefaults
到一些自定义字段。
答案 1 :(得分:0)
你可以用NSUserDefault保存对象..
[[NSUserDefaults standardUserDefaults] setObject:[NSKeyedArchiver archivedDataWithRootObject:self.flipsideView.zoznamFunkcii] forKey:@“NSMutableArray”]; [[NSUserDefaults standardUserDefaults] synchronize];
你制作编码器和解码器方法
(id)initWithCoder:(NSCoder *)decoder { if(self = [super init]){ self.toolResult = [decoder decodeObjectForKey:@“obj1”]; self.toolNotes = [decoder decodeObjectForKey:@“obj2”];
} 回归自我; }
(void)encodeWithCoder:(NSCoder *)encoder { [编码器编码对象:self.toolResult forKey:@“obj1”]; [编码器编码对象:self.toolNotes forKey:@“obj2”];
}
当您从NsUserDefault获取数据时,您的数据保存到NsuserDefault中,然后使用like [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@“NSMutableArray”]];