Я прочитал документацию, и похоже, что некоторые случаи кросс могут быть разными (трейлинг-косые черты и т. Д.), Но мне непонятно, какое основное различие между этими двумя методами. Используют ли термины «Компонент и расширение» особый смысл в мире URL, который люди, кроме меня, понимают?UrlByAppendingPathComponent vs UrlByAppendingPathExtension
ответ
Расширение пути предназначено для добавления таких объектов, как .html
, и компонент пути для добавления таких вещей, как /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"]);
Выход:
http://hello.com/news/local
http://hello.com/news.local
Всякий раз, когда у меня есть вопросы о том, как это, и документация не помогая, я просто тестирую его в логическом тесте.
NSURL *baseURL = [NSURL URLWithString:@"http://foo.com/bar/baz"];
NSURL *appendExtension = [baseURL URLByAppendingPathExtension:@"qux"];
NSURL *appendComponent = [baseURL URLByAppendingPathComponent:@"qux"];
STAssertEqualObjects([appendExtension absoluteString], @"http://foo.com/bar/baz.qux", nil);
STAssertEqualObjects([appendComponent absoluteString], @"http://foo.com/bar/baz/qux", nil);
Так оно и есть, расширение является. (Тип файла), там компонент/(каталог).
- 1. NSURL "URLByAppendingPathExtension:" ошибка?
- 2. Наиболее эффективное использование URLByAppendingPathComponent
- 3. `не URLByAppendingPathComponent` принимать аргумент
- 4. Значение типа 'URL' не имеет имени 'URLByAppendingPathComponent'
- 5. URLByAppendingPathComponent с archiveRootObject не работает правильно?
- 6. Ошибка: Значение типа «Строка» не имеет ни одного члена «URLByAppendingPathComponent»
- 7. Как добавить пользовательский путь в URLByAppendingPathComponent в iOS
- 8. Как добавить в NSURL нечто вроде «? X = 123»?
- 9. Создает ли встроенный VS VS VS VS 2010
- 10. FTP vs SFTP vs HDFS vs NTFS vs EXT2, EXT3
- 11. Сравнение lz4 vs lz4_hc vs blosc vs snappy vs fastlz
- 12. IDE vs Library vs SDK vs Framework vs Toolkit
- 13. J2ME VS Android VS iPhone VS Symbian VS Windows CE
- 14. VS 2013 MSTest vs nUnit vs xUnit
- 15. Rhino mock vs Typemock vs JustMock vs
- 16. control.BeginInvoke() Vs Dispatcher Vs SynchronizationContext Vs .. - НАДЕЖНОСТЬ
- 17. LocalAlloc Vs GlobalAlloc Vs malloc Vs new
- 18. DynamicProperty vs MutableProperty vs AnyProperty vs ConstantsProperty
- 19. inline vs __inline vs __inline__ vs __forceinline?
- 20. NUnit vs. MbUnit vs. MSTest vs. xUnit.net
- 21. Grunt vs Gulp vs Yeoman vs CodeKit
- 22. метод vs function vs procedure vs class?
- 23. Сон VS alarmManager.set VS alarmManager.setRepeat VS Handler
- 24. VS 2008 vs VS 2008 Express
- 25. ACE vs Boost vs Poco vs wxWidgets
- 26. Asp.net vs Html5 vs xml vs xhtml
- 27. Местоположение vs GeoPoint vs 1E6 vs Зарядка
- 28. ganglia vs sensu vs icinga vs nagios
- 29. .NET vs ASP.NET vs CLR vs ASP
- 30. объект vs array, {} vs [], echo vs print_r
Итак, оказывается, что ни один из этих методов не является тем, чего я хочу. Я предполагаю, что расширение означает расширение файла, а компонент означает «узел между косой чертой». Фактически, если вы используете append с компонентом, добавляемый вами компонент вставлен перед любыми параметрами запроса в URL. Это не совсем ясно из документации, и это вызвало мой вопрос. Мне пришлось вернуться к строке, сделать работу, а затем снова перейти на URL-адрес. В любом случае этот ответ является прекрасным примером того, как эти методы должны использоваться. –