2012-08-10 4 views
1

몇 가지 비슷한 질문을 체크 아웃하고 내 질문에 대한 대답을 찾지 못했습니다.jpg 파일의 절대 경로가 작동하지 않는 이유

첫 번째 부분은 파일의 상대 경로를 작성하는 방법입니다. 나는이 일을 얻지 못했지만 순간에 두 번째 부분을 움직일 수있게했다. 상대 경로 작업을 할 수 없어 절대 경로를 시도했습니다. 여기 내가 사용하는 코드입니다 :

NSString *path = [NSString stringWithFormat:@"/Users/my.name/Documents/TestFour/TestFour/Library/file%d.txt", i]; //where i is 1 or 2 
//NSString *path = [NSString stringWithFormat:@"./TestFour/Library/file%d.txt", i]; //this relative path didn't work, although TestFour.xcodeproj and TestFour are in the same directory and TestFour has child directory Library and xxx.h and xxx.m files 
NSString *spath = [path stringByStandardizingPath]; 
NSLog(@"file is %@", spath); 
if (spath) { 
    NSString *myText = [NSString stringWithContentsOfFile:spath encoding:NSUTF8StringEncoding error:nil]; 
    //continue, and I got myText .... 

가 지금은 JPG 파일을 가지고, 라이브러리 폴더에, 즉은 File2.txt, 상기와 같은 디렉토리에, myPic.jpg을 말한다. 이 이미지를 UIImageView에로드하고 싶습니다. 여기 내 코드가 있지만 실패했습니다.

NSString *path = @"/Users/my.name/Documents/TestFour/TestFour/Library/myPic.jpg"; 
NSString *spath = [path stringByStandardizingPath]; 

[self._bgView setImage : [UIImage imageNamed : spath]];

그러나, 나는 BTW 다른 관련 스레드에서, 그리고 일한 웹 기반 이미지를 시도 : [self._bgView setImage : [[있는 UIImage ALLOC] initWithData : [을 NSData dataWithContentsOfURL : [NSURL URLWithString : @ "HTTP : //farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg "]]]]; 나는 the_same_folder_file1.txt을 읽을 수는 있지만

그리고 다시 첫 부분에, 왜 내 상대 경로가 작동하지 않았다 the_same_folder_myPic.jpg

를로드 할 수없는 이유를

은 그래서 혼란 스러워요? 이것이 관련되어 있는지 확실하지 않은 경우이 프로젝트와 다른 jpg를 프로젝트로 드래그하면 기본 설정 (그룹 또는 이와 비슷한 항목)을 묻는 메시지가 표시됩니다. 프로젝트에이 jpg를 드래그해야할지 모르겠지만 드래그 전후에 코드가 작동하지 않습니다.

답변

0

[UIImage imageNamed]는 앱 번들에서 지정된 이름의 파일을로드합니다. 원하는 것은 [UIImage imageWithContentsOfFile] (reference)입니다.

또한 상대 파일 경로는 프로세스의 현재 작업 디렉토리를 기반으로 작동한다는 것을 이해해야합니다. 그게 뭔지 아십니까? 다음 같은 것을 사용하여 로그인 할 수없는 경우

char cwd[1024]; 
getcwd(cwd, sizeof(cwd)); 
NSLog(@"cwd='%s'", cwd); 

(당신은 #import <unistd.h>해야 할 수도 있습니다).

어쩌면 상대 경로 문제와 관련하여 도움이 될 것입니다.

+0

'getcwd()'를 사용할 수 있는지 궁금해서 들으 셨습니다. 맞습니다! 그러나 그것은 단지'/'를 반환합니다 –

+0

@JamesWebster 샌드 박스 응용 프로그램에서 온 것입니까? – trojanfoe

+0

그렇습니다 .... –

관련 문제