0

私はすでにplistファイルを使用してデータを保存しており、データの読み取りと書き込みの両方で実際に機能します。iPhoneデバイス内の古いSaveData.plistファイルを削除するにはどうすればよいですか?xcodeから削除し、同じ名前のファイル(SaveData.plist)で新しいものを追加してデバイスで実行すると、古いデータがまだ内部に残っているためです。

このコードを使用してSaveData.plistを追加します

NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"SaveData.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"SaveData" ofType:@"plist"];
    [fileManager copyItemAtPath:bundle toPath: path error:&error];
}
NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path];

ありがとうございました。

4

1 に答える 1

1

古いバージョンがあるif場合、ステートメント(ファイルがすでに存在する場合):

if (![fileManager fileExistsAtPath: path])

ドキュメントフォルダにコピーされないようにします。

最初にドキュメントフォルダ内のファイルを削除できます。

if ([fileManager removeItemAtPath:path error:&error] == YES)
{
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"SaveData" ofType:@"plist"];
    [fileManager copyItemAtPath:bundle toPath: path error:&error];
}

保存したデータを移行できるように、最初に古いファイルのコンテンツをロードすることを検討することもできます。

于 2012-07-26T06:18:57.070 に答える