내 앱의 캐시 기능을 구현하기 위해 NSKeyedArchiver
과 NSKeyedUnarchiver
을 사용하고 있습니다.NSHomeDirectory()에서 파일을 유지하는 방법은 무엇입니까?
앱이 실행될 때마다 캐시 파일을로드하기 위해 나는 NSHomeDirectory()
아래에 캐시 파일을 저장합니다. 코드 (C 함수)는 다음과 같습니다.
NSString* getArchivePathForId(NSString* modelId)
{
NSString *cacheIdentifier = @"CacheIdentifier";
NSString *archiveDirPath = [NSHomeDirectory() stringByAppendingFormat:@"/tmp/%@/cachedModel/%@", getAppVersion(), cacheIdentifier];
NSError* error;
if (![[NSFileManager defaultManager] fileExistsAtPath:archiveDirPath]) {
if (![[NSFileManager defaultManager] createDirectoryAtPath:archiveDirPath
withIntermediateDirectories:YES
attributes:nil
error:&error])
{
NSLog(@"Create directory tmp/cachedModel directory error: %@", error);
return nil;
}
}
NSString *archivePath = [archiveDirPath stringByAppendingFormat:@"/%@", modelId];
return archivePath;
}
앱이 실행 중이거나 백그라운드 모드에서 다시 작동하는 한 정상적으로 작동합니다. 그러나 앱이 종료되고 다시 실행되면 캐시 된 보관 파일이 삭제됩니다.
앱을 시작할 때 마지막으로 저장된 캐시를로드 할 수 있도록 보관 파일을 유지할 수있는 방법이 있습니까?
나는 이미 응용 프로그램이 실행될 때마다 NSHomeDirectory()
의 응용 프로그램 ID 부분이 다르다는 것을 알고 있습니다. 이것이 내 문제와 관련이 있습니까?
포럼 사이트와 달리 "감사합니다"또는 "도움을 주셨습니다", [서명]을 사용하지 않습니다. "[안녕하세요, '고마워,'태그 라인 및 인사말을 게시물에서 삭제해야합니까?] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be 참조) "감사합니다." "감사합니다." –