真机测试
第一种: 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"];
网友评论