그래서 내가 만들고있는 앱의 오프닝 사이에 데이터를 저장하려고합니다.하지만 내가 만들고있는 디렉토리와 저장하고있는 데이터가 지속되지 않습니다.디렉토리가 iOS 앱 실행 사이에 지속되지 않음
내가pathForDataFile
디렉토리를 생성하는 결과를 인쇄
- (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"]];
}
은, 때마다 그것이 어떤 의미 1 인쇄 : 나는 세 가지 방법을 왜 ...
응용 프로그램 구멍 사이에, 나는 알아낼 수 없습니다 한 번 호출 한 후에 디렉토리가 이미 존재해야하므로 할 수 없더라도 디렉토리를 만들 때마다. saveDataToDisk
이 applicationWillTerminate
에서 호출되고 loadDataFromDisk
이 applicationDidBecomeActive
에서 호출됩니다. 왜이 일이 일어나는 지 아무도 나를 도울 수 있습니까?
applicationWillTerminate 당신에게 충분한 시간을 제공하지 않을 수 있습니다. 테스트 목적으로 다른 곳에서 그 메소드를 호출 할 수 있습니까? –
@WarifAkhandRishi 문제는 'NSLog()'를 출력한다는 것입니다. 그래서 메서드가 제 시간에 호출되는 것을 의미합니다. 타이밍 문제는 아닙니다 ... –