Постараюсь.
Начну с поиска элемента в строке:
у вас есть переменная с неким строковым значением var mystring = "some test string" . Чтобы узнать - есть ли в вашей переменной некий символ можно написать так: mystring.contains("s"). Результатом последнего кода будет булевское значение true или false.
Теперь про фильтрация массива:
функция filter позволяет отфильтровать массив по, так называемому, предикату - функции которая описывает фильтрующий принцип, проверяя каждый элемент массива этим принципом . Те элементы массива для которых предикат (фильтрующий принцип) возвращает true - попадают в результат. В приведенном мной выше примере предикат отбирает только те элементы массива у которых длинна больше 3-х символов.
Давайте соединим эти две функции.
words.filter { word in return word.contains("s") && word.contains("a") }
по поводу предикатов в свифте почитайте отдельно, когда почувствуете в себе силы разобраться в них. В кратце: word, в примере, это очередной элемент из массива. То что идет после in это уже исполняемый блок кода. Можно записать в следующем виде:
words.filter { word in
var isContainingS = word.contains("s")
var isContainingA = word.contains("a")
return isContainingS && isContainingA }
The_XXI, Вооот. Вот вам и причина по которой не выполняется ваш URLRequest. Потому что ему нужен конкретный адрес, а его нет. Вместо него - пустое место.
Теперь вам надо понять почему xcode не может из строчки собрать урлу.... Подозреваю из-за какогото символа.
Совет: убирайте по одному символы из строчки, начиная с конца. Когда сможет собрать урлу - то только что убранный символ и был проблемным..... Ну, по крайней мере скорее всего так будет. Есть конечно варианты. Но, надеюсь не в вашем случае.
Вам обязательно надо понять зачем существует знак "!", который стоит в конце строчки. Что такое Optional.
Как вариант - предлагаю вам убрать "!" в строчке где вы присваиваете url, и поставить его внутри URLRequest(url!).
Тогда у вас выдаст ошибку опять на URLRequest, но вы сможете увидеть - что у вас в переменной url.
Для боле гибкой работы с отладкой - советую посмотреть на то как делать, эту самую, отладку. Как ставить брекпоинты (breakpoints). Но, это уже после.
Как я и предлагал ранее - добавьте в Новость (которую вы реализовали) еще одну проперти. Которая будет в себе содержать массив урлов/картинок, которые уже и будут отображаться в тех трех ИмэджВьюхах внизу.
Извините, я сейчас отвечу не профессионально, но зато в вашем же стиле: " Ну так, берите и связывайте изображения с одного окна, с ячейкой из другого окна".
...Я вам уже задал уточняющие вопросы про Модели. Вы их игнорируете и продолжаете говорить тоже, что уже сказали ранее.
Раз я спрашиваю и уточняю что-то - значит это мне надо для понимания вашей проблемы.
Если не хотите отвечать - ваше право. Но я не Ванга, и угадывать не буду.
Денис Мельников, а я вам или написал ответ на каждый ваш вопрос или задал уточняющие вопросы. Если вы не ответите на уточняющие вопросы, я не смогу дать вам другие ответы, кроме тех что уже написал выше.
Денис Мельников, Я не понимаю в чем у вам проблема? Вы используете Модели в своем приложении? Знаете
такой термин в программировании? Читали, в качестве затравки, о MVC (Model-View-Controller)?
Если нет - то это слишком обширная темя чтобы тут ее расписывать. (почитайте и приходите с конкретным вопросом)
Если да - тогда опишите в чем у вас затык конкретнее.
Какую функцию написать, чтоб бы добавлять объекты в избранное?
Как хранить их там?
и как посмотреть список избраного?
Нет такого объекта в языке программирования как "Избранное". Вам надо самому его продумать и написать. Вот все что вы написали выше и надо продумать. И как хранить. И как добавлять. И как извлекать.
Но, по сути. это просто, должна быть обертка над словарем, какая-то. Т.е., вам просто надо создать объект (нейминг беру от балды) FavoriteStonks в котором будет пропертя где будет храниться словарь ваших избранных. Добавить объекту методы добавления в этот словарь новых объектов, удаления и.т.п.
Подумать и решить кто будет держать этот FavoriteStonks, и как до него будут доходить запросу от других объектов.
Начну с поиска элемента в строке:
у вас есть переменная с неким строковым значением
var mystring = "some test string"
. Чтобы узнать - есть ли в вашей переменной некий символ можно написать так:mystring.contains("s")
. Результатом последнего кода будет булевское значение true или false.Теперь про фильтрация массива:
функция
filter
позволяет отфильтровать массив по, так называемому, предикату - функции которая описывает фильтрующий принцип, проверяя каждый элемент массива этим принципом . Те элементы массива для которых предикат (фильтрующий принцип) возвращает true - попадают в результат. В приведенном мной выше примере предикат отбирает только те элементы массива у которых длинна больше 3-х символов.Давайте соединим эти две функции.
по поводу предикатов в свифте почитайте отдельно, когда почувствуете в себе силы разобраться в них. В кратце:
word
, в примере, это очередной элемент из массива. То что идет послеin
это уже исполняемый блок кода. Можно записать в следующем виде: