【发布时间】:2012-12-11 20:22:34
【问题描述】:
我已经阅读了很多关于使用 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 方法。我怀疑问题确实出在我上面发布的代码中。
【问题讨论】:
标签: iphone objective-c nskeyedarchiver