UrlByAppendingPathComponent与UrlByAppendingPathExtension

Gre*_*ter 10 objective-c ios ios5

我已经阅读了文档,看起来有些边缘情况可能不同(尾部斜线等),但我不清楚这两种方法之间的主要区别是什么.组件和扩展这些术语在URL世界中是否具有特殊含义,除了我以外的人都能理解?

nev*_*ing 17

路径扩展用于添加类似.htmlURL的内容,路径组件用于添加类似的内容/news/local.路径扩展的文档:

如果原始URL以一个或多个正斜杠结尾,则会从返回的URL中删除这些斜杠.在新URL的两个部分之间插入句点.

所以http://hello.com/news/会成为http://hello.com/news.html

路径组件的文档:

如果原始URL不以正斜杠结尾且pathComponent不以正斜杠开头,则在返回的URL的两个部分之间插入正斜杠,除非原始URL是空字符串.

所以http://hello.com/news/会成为http://hello.com/news/html

这是一个快速测试:

NSURL *originalURL = [NSURL URLWithString:@"http://hello.com/news"];
NSLog(@"%@", [originalURL URLByAppendingPathComponent:@"local"]);
NSLog(@"%@", [originalURL URLByAppendingPathExtension:@"local"]);
Run Code Online (Sandbox Code Playgroud)

输出:

http://hello.com/news/local
http://hello.com/news.local
Run Code Online (Sandbox Code Playgroud)