현재 문서 디렉토리에서 읽고 쓸 수있는 모든 설정이 있지만 파일이 아직 존재하지 않으므로 수행 할 수 없습니다.장치의 문서 디렉토리에 처음으로 실행 가능한 plist 파일 만들기
코드 내에서 파일이 어떻게 생성됩니까?
현재 문서 디렉토리에서 읽고 쓸 수있는 모든 설정이 있지만 파일이 아직 존재하지 않으므로 수행 할 수 없습니다.장치의 문서 디렉토리에 처음으로 실행 가능한 plist 파일 만들기
코드 내에서 파일이 어떻게 생성됩니까?
응용 프로그램 번들에 이미 문서의 서식 파일 버전이있는 경우 다음과 비슷한 방법을 사용하여 응용 프로그램의 문서 디렉터리에 문서 버전을 쓸 수 있어야합니다. 이 코드를 테스트하지 않았으므로 몇 가지 문제가있을 수 있지만 일반적인 생각입니다.
- (void) applicationDidFinishLaunching {
NSArray* directories = NSSearchPathsForDirectoriesInDomain(NSDocumentsDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [directories objectAtIndex: 0];
NSString* path = [documentsDirectory stringByAppendingPathComponent: @"Something.plist"];
if (![[NSFileManager sharedInstance] fileExistsAtPath: path]) {
NSString* infoTemplatePath = [[NSBundle mainBundle] pathForResource: @"Something" ofType: @"plist"];
NSDictionary* info = [NSDictionary dictionaryWithContentsOfFile: infoTemplatePath];
[info writeToFile: path];
}
}
NSFileManger의 fileExistsAtPath:
을 사용하여 파일이 존재하는지 확인하십시오. 파일이 필요한 코드로 이동하기 전에 파일을 만들지 마십시오.
이 사람은 나를 위해 잘 작동 :
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"*.db"];
if (![fileManager fileExistsAtPath:documentDBFolderPath])
{
NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"*.db"];
[fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:&error];
}
내가 다른 클래스에서 파일에 기록하고 싶습니다. applicationDidFinishLoading 메서드에서 위의 코드와 비슷한 것을 시도한 다음 다른 클래스에 고유 한 경로가있는 동일한 코드를 삽입합니까? 또한 예를 들어해야합니까? 내 리소스 폴더에 빈 plist로 something.plist? 문안 인사 – jarryd