そのため、作成中のアプリを開く間にいくつかのデータを保存しようとしていますが、何らかの理由で、作成中のディレクトリと保存しているデータがアプリを開く間保持されず、わかりませんなぜ…</p>
私には3つの方法があります:
- (NSString *)pathForDataFile
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"MyApp"];
NSLog(@"%@", documentsDirectory);
NSError *error;
NSLog(@"%i", (int)[[NSFileManager defaultManager] createDirectoryAtPath:documentsDirectory withIntermediateDirectories:YES attributes:nil error:&error]);
return documentsDirectory;
}
- (void)saveDataToDisk
{
NSString * path = [self pathForDataFile];
NSMutableDictionary * rootObject;
rootObject = [NSMutableDictionary dictionary];
[rootObject setValue: [self usedPlaces] forKey:@"key"];
[NSKeyedArchiver archiveRootObject: rootObject toFile: path];
}
- (void) loadDataFromDisk
{
NSString * path = [self pathForDataFile];
NSDictionary * rootObject;
rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
[self setObject: [rootObject valueForKey:@"key"]];
}
でディレクトリを作成した結果をpathForDataFile
出力すると、毎回 1 が出力されます。つまり、そのディレクトリを作成するたびに、1 回の呼び出し後にディレクトリが既に存在するはずなので、作成できないはずです。saveDataToDisk
で呼び出されapplicationWillTerminate
、 でloadDataFromDisk
呼び出されapplicationDidBecomeActive
ます。なぜこれが起こっているのか、誰かが私を助けることができますか?