Ios 如何确定URL是本地文件路径还是远程文件路径

Ios 如何确定URL是本地文件路径还是远程文件路径,ios,objective-c,url,filepath,nsfilemanager,Ios,Objective C,Url,Filepath,Nsfilemanager,我得到了一个场景,文件可能会上传到服务器上,这样的时间路径将如下file://some 路径以/somepath…/开头,我使用NSURL urlWithFilePath将其转换为服务器 一旦服务器拥有该文件,就有了一种机制,我可以在其中下载该内容,并获得同一文件的远程路径,如http://等 现在的决定是,当我点击图像时,我想决定全屏打开它,但在此之前,我必须确定是应用[NSURL URLWithString]还是[NSURL fileURLPath] 在应用于正确打开图像之前,请猜测如何检测

我得到了一个场景,文件可能会上传到服务器上,这样的时间路径将如下file://some 路径以/somepath…/开头,我使用NSURL urlWithFilePath将其转换为服务器

一旦服务器拥有该文件,就有了一种机制,我可以在其中下载该内容,并获得同一文件的远程路径,如http://等

现在的决定是,当我点击图像时,我想决定全屏打开它,但在此之前,我必须确定是应用[NSURL URLWithString]还是[NSURL fileURLPath]

在应用于正确打开图像之前,请猜测如何检测此问题。

添加类别“NSString+URL.m”类


您不能有指向远程服务器的
文件:
URL。这仅适用于本地文件。感谢rmaddy,但这不是我的查询答案,我想在上载或下载此信息时,从存储在DB中的字符串路径确定其远程路径还是本地路径。如果字符串具有方案,请使用
URLWithString
。如果不是,请使用
fileURLWithPath
。您能举例说明scheme.http:、file:、ftp:、mailto:、tel:,等等的含义吗?不,这是不正确的。如果它有任何方案(包括
文件:
),则需要使用
URLWithString
。仅当字符串表示文件路径时才使用
fileURLWithPath
。文件路径不会有任何URL方案。像
www.google.com
这样的字符串不是有效的URL.file:????始终是本地文件而不是远程文件。检查我的问题,我只处理本地文件路径或远程路径http://或file://,另一个在无效url中所说的只是错误检查条件,以避免返回nil。如果您有一个字符串,例如
file://some/path/to/a/file.txt
然后必须使用
URLWithString:
创建
NSURL
。如果你有一个字符串,比如
/some/path/to/a/file.txt
,那么你必须使用
fileURLWithPath:
。好的,我会更新我的帖子答案,以更好的方式接受它。如果url没有
http
/
https
/
文件
,这将失败。此外,对于恰好以您在此处处理的架构前缀开头的无效url字符串,此操作也将失败。
-(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;
}