問題は、シミュレータではなくデバイスで発生しています。
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Plist1.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSLog(@"documentsDirectory --- %@", documentsDirectory);
NSLog(@"path --- %@", path);
@try
{
if (![fileManager fileExistsAtPath:path])
{
[fileManager copyItemAtPath:documentsDirectory toPath:path error:&error];
}
}
@catch (NSException *exception)
{
NSLog(@" [exception description] -- %@", [exception description]);
}
@finally {
}
[dictEmot writeToFile:path atomically:YES];
// To verify
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
NSLog(@"[dict allKeys] My plist ----- %@", [dict allKeys]);
上記は、ドキュメント ディレクトリに 2 つの plist ファイルを保存するために作成したコードです。2 番目の plist を保存するのと同じ方法です。
[self savePlist:plist1];
[self savePlist:plist2];
私の問題は、2 番目の plist を保存しようとするたびに、ドキュメント ディレクトリ内にフォルダーの階層が作成され、その内容で plist2 ファイルが保存されないことです。
2 番目のメソッド呼び出しが完了すると、アプリ ドキュメント ディレクトリは次のようになります。
Documents
-> plist1
-> plist1
.
.
.
-> plist1
-> plist1
other files
私はメインスレッドでもやってみましたが、同じ結果です。
そのさえない印刷例外。
- 私の間違いは何ですか?
- 階層を作成する理由は?