viewDidLoad
で、私のアプリケーションは、次のようにアイテムarrayOfHaiku
の配列である NSMutableArray を設定します。NSDictionary
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"haiku.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"haiku" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath: path error:&error];
}
self.arrayOfHaiku = [[NSMutableArray alloc] initWithContentsOfFile: path];
アプリケーションの使用中に、ユーザーはアイテムを に追加しますself.arrayOfHaiku
。今のところ、次のコードを に含めますviewDidUnload
。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"haiku.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath: path])
{
[self.arrayOfHaiku writeToFile:path atomically:YES];
}
ここに私の質問があります:
私のコードは
viewDidUnload
、 a) Documents フォルダーに配列を格納しているドキュメント (つまり、 でアクセスした配列viewDidLoad
) を新しい拡張された配列で上書きするだけですか (これが私がやりたいことです)、それとも b) を追加しますか? Documentsフォルダーに既に保存されている配列に新しい拡張配列を追加して、繰り返しが2倍以上の長さの配列になってしまうのでしょうか?答えが「b)」の場合、「a)」を行うには何を変更する必要がありますか?
a) で私がやっているようにそれを行う方が良いです
viewDidUnload
か、それとも b) ユーザーが項目を self.arrayOfHaiku に追加するたびにドキュメント フォルダ内の配列を展開する方が良いですか?答えが「b)」の場合、「b)」を行うには何を変更する必要がありますか?
ご協力いただきありがとうございます。