NSKeyedArchiver を使用して単一の配列をアーカイブすることについて、よく読んだことがあります。しかし、2 つの配列を保存するにはどうすればよいでしょうか。
UITabBarController 内の 2 つのビュー コントローラーのデータを保存/取得する必要があります。2 つのビュー コントローラーはそれぞれ、同じカスタム クラスのオブジェクトを作成しますが、ビュー コントローラーごとに個別の配列に格納します。
現在のコードでは、各配列を保存するために個別の方法を使用しています。問題は、2 番目の配列をアーカイブすると、最初の配列が上書きされることです。両方を保存することはできません。2 つの配列を独自のファイルに保存するか、データを 1 つのファイルに結合する必要があると思います。このためのコードの書き方がわかりません。誰か助けてくれませんか??
- (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 メソッドを実装して通常のセットアップを行ったことに言及する必要があります。問題は実際に上に投稿したコードにあると思われます。