我已经阅读了很多关于使用 NSKeyedArchiver 归档单个数组的内容。但是我将如何保存两个数组?
我需要为 UITabBarController 中的两个视图控制器存储/检索数据。两个视图控制器中的每一个都创建相同自定义类的对象,但将它们存储在每个视图控制器的单独数组中。
我当前的代码使用单独的方法来保存每个数组。问题是在归档第二个数组时,它会覆盖第一个数组。我不能让他们两个都拯救。我想我要么需要将两个数组保存到他们自己的文件中,要么将数据合并到一个文件中。我只是不确定如何为此编写代码。有人可以帮忙吗??
- (void)saveFermentableIngredients
{
NSMutableData *fermentableData = [[NSMutableData alloc] init];
NSKeyedArchiver *fermentableArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:fermentableData];
[fermentableArchiver encodeObject:self.fermentableIngredients forKey:@"FermentableIngredients"];
[fermentableArchiver finishEncoding];
[fermentableData writeToFile:[self dataFilePath] atomically:YES];
}
- (void)saveHopIngredients
{
NSMutableData *hopData = [[NSMutableData alloc] init];
NSKeyedArchiver *hopArchiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:hopData];
[hopArchiver encodeObject:self.hopIngredients forKey:@"HopIngredients"];
[hopArchiver finishEncoding];
[hopData writeToFile:[self dataFilePath] atomically:YES];
}
我应该提到,我已经完成了通常的设置,实现了 initWithCoder 和 encodeWithCoder 方法。我怀疑问题确实出在我上面发布的代码中。