2014-09-23 1 views
0

다음 방법을 사용하여 plist 파일 ('Checklist.plist')을 만들려고하면 디렉토리에있는 파일을 볼 수 없습니다. enter image description hereplist 파일을 저장하고로드 할 수 없습니다

- (NSString *)documentsDirectory { 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths firstObject]; 
return documentsDirectory; } 

- (NSString *)dataFilePath { 
return [[self documentsDirectory] stringByAppendingPathComponent:@"Checklists.plist"]; 
} 

이유는 디렉토리에있는 파일을 볼 수없는 이유는 무엇입니까? 이 문제를 어떻게 해결할 수 있습니까?

+0

"볼 수 없음"이란 무엇을 의미합니까? 파일 생성이 성공 했습니까 (오류가 없었습니다)? 시뮬레이터 파일 시스템에서 올바른 위치를 찾고 있습니까? –

+0

이러한 메서드는 아무 것도 만들지 않습니다 ... 파일을 작성하는 곳을 알려주십시오 –

+0

프로그램을 실행할 때 오류 메시지가 표시되지 않았습니다. 예. Similator 파일 시스템을 사용하여 파일을 보려고했습니다. #Ben – MdRiduan

답변

1

파일에 무엇인가 저장 했습니까? 당신이 시뮬레이터에서 이것을 실행하면

NSString *test = @"test"; 
[test writeToFile:[self dataFilePath] atomically:YES]; 

,이 파일의 경로를 NSlog 수 있으며, 개방 찾기보다는 눌러 cmd + shift + gChecklist.plist, 단지 문서 파일 경로를 포함하지 않는, 파일 경로를 붙여, 당신은 파일을 볼 수 있습니다 그냥 Checklist.plist이라는 이름으로 만듭니다.

이 내 모든 코드 :

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSArray *testArray = [NSArray arrayWithObjects:@"test", nil]; 
    [testArray writeToFile:[self dataFilePath] atomically:YES]; 
} 
- (NSString *)documentsDirectory { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths firstObject]; 
    return documentsDirectory; 
} 

- (NSString *)dataFilePath { 
    return [[self documentsDirectory] stringByAppendingPathComponent:@"Checklists.plist"]; 
} 
- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 
+0

Yeap.Plist 파일에 일부 객체를 저장했습니다. 언급 한 모든 가능한 방법을 수행했지만 작동하지 않습니다. – MdRiduan

+0

고마워. 잘됐다! 문제가 발생한 이유를 설명해 주시겠습니까? – MdRiduan

+0

@MdRiduan 파일을 저장해야하므로 파일이 생성됩니다. – Jacky

0

-dataFilePath를 호출 할 때 파일이 생성되지 않습니다.

NSError *e = nil; 
[@"blabla" writeToFile:[self dataFilePath] atomically:YES encoding:NSUTF8StringEncoding error:&e]; 

NSError *e1 = nil; 
NSString *fileContents = [NSString stringWithContentsOfFile:[self dataFilePath] encoding:NSUTF8StringEncoding error:&e1]; 

모두 오류가 전무해야하며 된 FileContents은 원래의 문자열을 포함한다 :

이 파일에 일반 문자열을 쓰려면 사용합니다.

관련 문제