美文网首页
NSURL转NSString 的路径与 从沙盒获取的路径的区别

NSURL转NSString 的路径与 从沙盒获取的路径的区别

作者: 月醉花听 | 来源:发表于2018-04-03 15:02 被阅读0次

    真机测试

    第一种: NSURL->NSString 通过.absoluteString 得到下面的

    file:///var/mobile/Containers/Data/Application/8306F70B-676A-4F71-8E97-81729536348B/Library/Caches/MusicCrop/20180403145307.caf

    第二种: 直接从沙盒获取的路径是下面这样的

    /var/mobile/Containers/Data/Application/8306F70B-676A-4F71-8E97-81729536348B/Library/Caches/MusicCrop/20180403145307.caf

    有什么区别?

    对于访问文件而言,这两种方法都可以。

    但是在使用的时候

    第一种要用[NSURL URLWithString:@""];

    第二种要用[NSURL fileURLWithPath:@""];

    第一种加 file://,这是URL协议的规范!不然无法在计算机的海洋里标识一种【资源】

    http://en.wikipedia.org/wiki/URI_scheme

    第二种是通过 NSFileManager 去访问文件的,NSFileManager内部会把路径转成URL协议。

    如果是一个合法的NSURL对象,它里面封装的请求的url字符串是必须要指定访问协议的。如你去请求一个http协议的url需要指明它的协议才能正确返回NSURL对象,否则返回nil, 例如下面:

    NSURL*httpURL = [NSURL URLWithString:@"http://www.baidu.com"];

    /////拨打电话

    NSURL*telURL = [NSURL URLWithString:@"tel://1111"];

    /////你甚至可以自己自定义URL协议

    NSURL*myURL = [NSURL URLWithString:@"myApp://xxxxx"];

    相关文章

      网友评论

          本文标题:NSURL转NSString 的路径与 从沙盒获取的路径的区别

          本文链接:https://www.haomeiwen.com/subject/hjzqhftx.html