2011-10-18 2 views
5

내 앱은 사용자 정보/환경 설정의 암호화 된 데이터를 파일에 기록하고 다음에 앱을 열 때 해당 파일을 읽습니다.iOS : 파일에 저장하면 에뮬레이터에서 작동하지만 기기에서는 작동하지 않습니다.

파일을 작성 :

- (BOOL)writeFile:(NSString *)data:(NSString *)fileName { 
    return [data writeToFile:fileName 
       atomically:YES 
        encoding:NSUTF8StringEncoding error:nil]; 
} 

파일 읽기 : 이것은 에뮬레이터에서 잘 작동

- (NSString *)readFile:(NSString *)fileName { 
    NSData *data = [NSData dataWithContentsOfFile:fileName]; 
    NSString *str = [[[NSString alloc] initWithData:data 
             encoding:NSUTF8StringEncoding] autorelease]; 
    return str; 
} 

. 파일은 예상대로 작성되고 읽 t집니다. 장치에 파일 읽기/쓰기를 설정해야합니까?

+1

'fileName'으로 무엇을 전달합니까? – jrturton

+1

@jrturton이 말했듯이, 어떤 파일에 편지를 쓰고 있습니까? 그것은 응용 프로그램의 디렉토리에없는 경우, 실제 장치가 그것을 허용하지 않습니다,하지만 어쩌면 시뮬레이터합니까? – Kevin

+0

@Kevin 앱용 파일을 직접 만들 수 없습니까? – dee

답변

7

파일 이름은 문서 디렉토리에 있어야합니다. 시뮬레이터에는 장치가 수행 할 때 파일을 쓸 수있는 부분에 대한 제한이 없습니다. 위의 기능에

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"myfilename.extension"]; 

패스이 당신은 괜찮을 다음과 같이

는 문서 디렉토리를 얻습니다.

관련 문제