0

我希望将精心制作的多层次自定义对象保存到 NSUserDefaults 中。我的自定义类设置如下:

  • 讲师
    • @property (strong, nonatomic) NSString *instructorName;
    • @property(强,非原子)NSMutableArray *classes; // 类对象的数组
  • 班级
    • @property (strong, nonatomic) NSString *className;
    • @property(强,非原子)NSMutableArray *students; //学生对象的数组
  • 学生
    • @property (strong, nonatomic) NSString *studentName;
    • @property (nonatomic) NSUInteger studentNumber;
    • @property(非原子)NSInteger studentMoney;

我需要将顶级“Instructor”对象保存到 NSUserDefault 中,以便我可以访问它下面的整个数据层。我已经引用了这篇文章,但我需要更多帮助来解决它。在那个例子中,他展示了两个不同的类和一些与之配套的方法。这些方法本身是否写入了不同的自定义类?我将如何在我的应用程序中实际使用它?

我需要保存一个“Instructor”对象,它有一个类数组,里面装满了一组学生。如何将一个讲师对象保存到 NSUserDefault's,以便我可以检索它并重新加载它以供使用?

4

1 回答 1

2

所有对象(Instructor、Class 和 Student)都需要采用和实现 NSCoding 协议。有关实施,请参阅此帖子。正如@uchuugaka 所说,听起来 NSUserDefaults 不是存储这些数据的地方。

您仍然可以将数据序列化到磁盘,但只需将其写入单独的文件。Apple 的Archives and Serializations Programming Guide是学习此方法基础知识的好书。

如果您要保存的对象图会更复杂,并且您需要搜索和查询对象图,例如查找 studentMoney >= 50 且 lastName 以“A”开头的学生人数,那么您可能需要查看核心数据。但是,请注意,Core Data 是一个高级框架,因此它确实有相当长的学习曲线。

于 2013-08-28T04:10:47.357 回答