2010-02-23 11 views
2

파일의 실제 텍스트 내용 대신 nil 문자열을 생성하는 이유는 무엇입니까?Cocoa : 파일에서 문자열을 가져 오는 기본 문제

NSString *fromFile = [NSString stringWithContentsOfFile: 
         @"file://localhost/Users/username/Desktop/test.txt"]; 

NSLog(@"%@", fromFile); 

PRINTS: "(null)" 

이 파일은 내용이 'abc'인 TextWrangler에서 저장 한 일반 ASCII 텍스트 파일입니다.

경로는 실제 파일을 바탕 화면에서 Xcode 편집기 창으로 드래그 한 것입니다.

또한 "file : // localhost"없이 시도했습니다.

메서드 설명서에 "파일을 열 수없는 경우 nil을 반환합니다."라는 메시지가 표시됩니다. 파일에 대해 특별한 것은 없습니다 (잠겨 있지 않은 등). 기본 Unix 권한이 있으며 Xcode를 실행하는 사용자와 동일한 사용자가 생성했습니다.

나는이 방법이 더 이상 사용되지 않는다는 것을 알고있다.

+0

해야한다. txt ". 신경 쓰지 마라 : | – user279520

+0

이 전체 질문을 삭제하겠습니다. – user279520

+5

죄송 합니다만, 나머지 사람들처럼 공개 수치심을 느끼면됩니다. 누군가 다른 길에 똑같은 문제가있을 수 있습니다. – TechZen

답변

0

~/Desktop/test.txt 또는 /Users/username/Desktop/test.txt을 사용해 보셨습니까?

+0

글쎄, 나는 생각 했어. 물론, 나는 3 번이나했다. 그리고 이제 실제로 /Users/username/Desktop/test.txt가 작동합니다. 그러나 BTW ~/Desktop/test.txt는 작동하지 않습니다. – user279520

+1

두 번째 작업을 만들기 위해 NSString의 stringByExpandingTildeInPath 메서드를 호출해야합니다. 미안합니다. – jessecurry

4

stringWithContentsOfFile:stringWithContentsOfURL:이 섞여 있습니다.

예를 들어 URL을 전달하는 경우. @"file://localhost/Users/username/Desktop/test.txt" stringWithContentsOfURL:을 입력하고 매개 변수를 NSURL으로 설정하십시오. // 로컬 호스트 부분 - @ "/ 사용자/사용자 이름/데스크탑/testabc3 :이 파일없이 작업 - 당신은 stringWithContentsOfFile:를 사용하려면 guh 오 [NSURL URLWithString:@"file://localhost/Users/username/Desktop/test.txt"]

하여 매개 변수는 @"/Users/username/Desktop/test.txt"

+0

이상하게도 "file : // localhost/..."는 파일 자체를 Xcode 편집기 창으로 끌어 오면 Xcode가 생성하는 것입니다./사용자/... 경로가 작동하지 ... 고마워. – user279520

+0

stringWithContentsOfURL은 "file : // localhost"와 함께 작동하지 않는 것으로 보입니다. 별개의 Objective-C 유형 (??)에 대한 경고를 생성합니다. – user279520

+0

아, 문서를 잘못 읽었습니다. 매개 변수는 NSURL로 편집되었지만 항상 테스트 코드를 사용합니다. – Mark

관련 문제