我希望将精心制作的多级自定义对象保存到 NSUserDefaults 中。我的自定义类设置如下:
- 讲师
- @property (strong, nonatomic) NSString *instructorName;
- @property (strong, nonatomic) NSMutableArray *classes;//类对象的数组
- 类(class)
- @property (strong, nonatomic) NSString *className;
- @property (strong, nonatomic) NSMutableArray *students;//学生对象的数组
- 学生
- @property (strong, nonatomic) NSString *studentName;
- @property (nonatomic) NSUInteger studentNumber;
- @property (nonatomic) NSInteger studentMoney;
我需要将顶级“Instructor”对象保存到 NSUserDefault 中,以便我可以访问它下面的整个数据层。我引用了 this post ,但我需要更多帮助才能解决问题。在那个例子中,他展示了两个不同的类和一些方法。这些方法是自己写入不同的自定义类吗?我将如何在我的应用程序中实际使用它?
我需要保存一个“Instructor”对象,它有一组类(class),类(class)里有一组学生。我怎样才能将那个 instructor 对象保存到 NSUserDefault 中,以便我可以检索它并重新加载它以供使用?
最佳答案
所有对象(Instructor、Class、Student)都需要采用和实现NSCoding协议(protocol)。参见 this post for an implentation .正如@uchuugaka 所说,听起来 NSUserDefaults 不是存储这些数据的地方。
您仍然可以将数据序列化到磁盘,但只需将其写入一个单独的文件即可。苹果的Archives and Serializations Programming Guide是了解此方法基础知识的好书。
如果您要保存的对象图将变得更加复杂并且您需要搜索和查询对象图,例如查找 studentMoney >= 50 且 lastName 以“A”开头的学生人数,那么您可能需要查看 Core Data .但是,请注意 Core Data 是一个高级框架,因此它确实具有相当大的学习曲线。
关于ios - 如何将多级自定义对象保存到 UserDefaults?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18479066/