2017-02-14 23 views
0

Im конструирует URL-адрес из элементов запроса с помощью URLComponents, и я хочу добавить некоторые элементы запроса как условия OR, а не AND. Я не уверен, что такое правильная терминология для этого. Во всяком случае я хотел бы следующее, грубоSwift3 URL из URLComponents, как добавить элементы OR запроса

website.com/things?param1=thing&param2=thing|param3=thing|param4=thing 

, но добавление элементов запроса я могу получить только

website.com/things?param1=thing&param2=thing&param3=thing&param4=thing 

Моя цель состоит в том, чтобы проверить 3 различных параметров на срок я прохожу в, и возвращать результаты, которые совпадение с любым из 3. Если бы я строил url из строки, я мог бы просто использовать трубу вместо амперсанда (я думаю - пожалуйста, исправьте меня, если не так), но Im с помощью URLComponents и не уверен, как это сделать.

Возможно, я ошибаюсь. У меня нет опыта с этим. Если это неправильный подход, укажите мне в правильном направлении. Я не уверен, как слово на этот вопрос надлежащим образом, и что делает его трудно найти ответ

+0

AFAIK нет такого элемента запроса «ИЛИ» («|»). –

ответ

2

Im не уверен, что правильная терминология для этого

Существует нет терминологии для него; его не существует. То, что вы пытаетесь сделать, нестандартно. Нет такой вещи, как условие элемента запроса или. Стандартные разделители - это точки с запятой и амперсанды, причем амперсанд используется почти повсеместно. Вы не можете использовать канал для разделения элементов запроса.

Так, например, если вы вставляете website.com/things?param1=thing&param2=thing|param3=thing|param4=thing в парсер на http://www.freeformatter.com/url-parser-query-string-splitter.html, он не знает, что делать с трубами; он считает, что param2 должен быть thing|param3=thing|param4=thing.

Таким образом, URLComponents не собирается вставлять вам трубку. Его цель и цель - сделать допустимый URL-адрес, и вы пытаетесь сделать недействительным.