2016-12-16 8 views
-1

파일을 서버에 업로드하여 경로가 file :// somepath로 시작하는 경로가 될 수있는 시나리오가 나타납니다. ../ NSURL urlWithFilePath를 사용하여 서버로 변환합니다.URL이 로컬 파일 경로인지 원격 파일 경로인지 결정하는 방법

서버에 파일이 있으면 해당 파일을 다운로드하고 동일한 파일에 대해 http : //와 같은 원격 경로를 가져 오는 메커니즘이 있습니다.

이제 이미지를 탭할 때 전체 화면으로 열려고하지만 그 전에는 [NSURL URLWithString] 또는 [NSURL fileURLPath]를 적용할지 여부를 결정해야합니다.

아무 것도 열려있는 이미지에 올바르게 적용하기 전에이를 감지하는 방법을 추측하십시오.

+1

당신은'파일 수 없습니다 : 원격 서버에'URL을. 로컬 파일에만 해당됩니다. – rmaddy

+0

고마워요 rmaddy하지만 내 쿼리 대답이 아니라, 나는 DB의 문자열 경로에서 업로드하거나이 정보를 다운로드 할 때 자신의 원격 또는 로컬 경로가 저장되어 결정 싶어요. –

+0

문자열에 스킴이 있으면 'URLWithString'을 사용하십시오. 그렇지 않다면,'fileURLWithPath'를 사용하십시오. – rmaddy

답변

-2

카테고리 "는 NSString + URL.m"클래스를 추가

-(NSURL*)url 
{ 
    NSURL *myURL; 
if ([self.lowercaseString hasPrefix:@"http://"] || [self.lowercaseString hasPrefix:@"https://"] || [self.lowercaseString hasPrefix:@"file://"]) { 
    myURL = [NSURL URLWithString:self]; 
} 
else 
{ 
    //Default consider it file url path 
    myURL = [NSURL fileUrlWithPath:self]; 
} 
return myURL; 
} 
+0

아니요, 올바르지 않습니다. 스키마 ('file :'포함)가 있으면'URLWithString'을 사용해야합니다. 문자열이 파일 경로를 나타내는 경우에만'fileURLWithPath'를 사용하십시오. 파일 경로에는 URL 스키마가 없습니다. 그리고'www.google.com '과 같은 문자열은 유효한 URL이 아닙니다. – rmaddy

+0

파일 : ???? 항상 로컬 파일이 아니고 원격 파일입니다. 그리고 내 질문을 확인, 나는 로컬 파일 경로 또는 원격 경로 http : // 또는 file : // 다루고있다, 당신이 잘못된 URL에 말을 다른 것은 그냥 nil 반환을 피하기 위해 오류 검사 조건입니다. –

+0

'file : // some/path/to/a/file.txt'와 같은 문자열이 있다면'URLWithString :'을 사용하여 NSURL을 만들어야합니다. '/ some/path/to/a/file.txt'와 같은 문자열이 있다면'fileURLWithPath :'를 사용해야합니다. – rmaddy