2013-02-21 1 views
0

UITextFields (name, addr, contactNumber, email)의 내용으로 파일에 쓰는 데 사용되는 코드입니다.NSDocumentDirectory - 파일 쓰기 및 읽기

NSDictionary *userDict = [NSDictionary dictionaryWithObjectsAndKeys: 
          self.name.text, @"UserName" 
          ,self.address.text, @"UserAddress" 
          ,self.contactNumber.text, @"UserContactNumber" 
          ,self.email.text, @"UserEmail" 
          , nil]; 
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:@"UserDetails"]; 
BOOL writtenToFile = [userDict writeToFile:fullPath atomically:YES]; 
NSLog(@"writtenToFile: %d",writtenToFile); 

및이 파일을 읽는 중 하나입니다.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 
NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:documentsPath]; 
for (NSString *path in directoryEnumerator) 
{ 
    NSLog(@"File Names: %@", path); 
    if ([path isEqualToString:@"UserDetails"]) { 
     NSData *data = [NSData dataWithContentsOfFile:path]; 
     NSLog(@"%@",data); 
     NSDictionary *userDict = [[NSDictionary alloc] initWithContentsOfFile:path]; 
     NSLog(@"%@",userDict); 
    } 
} 

하지만 아무 것도 읽지 못하고 있습니다. 항상 로그에 null을 인쇄합니다.

File Names: UserDetails 
(null) 
(null) 
+0

실제 로그를 포함하십시오. – occulus

답변

1

당신은 그런

편집

NSString *documentsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"UserDetails"]; 

을 읽을 때, 추가 '경로'을 추가하는 것을 잊지 dataWithContentsOfFile에 전체 경로를 제공. 열거하면 파일 이름 만 제공됩니다

+0

나는'NSLog'에서 인쇄하고있는 이유를 이미 알고 있습니다. 아직도 당신의 라인을 시도했다. 죄송합니다.이 줄은 저에게 효과가 없었습니다. –

+0

'UserDetails'만 경로를 지정하십시오. ** dataWithContentsOfFile : ** 해당 정보로만 파일을 검색 하시겠습니까? –

+0

당신은 전체 경로 –

0
NSString *path = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] path]; 
//You'll need an additional '/' 
NSString *fullPath = [path stringByAppendingFormat:@"/UserDetails.plist"]; 
BOOL writtenToFile = [userDict writeToFile:fullPath atomically:YES]; 
+0

이것을 시도했다. * 성공 없음 *. 중단 점을 넣은 후 그것은'데이터 변수가 NSData가 아닌'및'userDict - nil'을 보여주었습니다. –