Тернарный условный оператор и оператор ??

Тернарный условный оператор

Проверку на выполнение условий можно записать со помощью условного оператора if else

Тут все просто – если батарейки сели – нужно их заменить, а если они в порядке – то можно и  использовать. Эту конструкцию можно записать в одну строку.

Эти два выражения абсолютно равнозначны.

Оператор ??

Оператор ?? применяется к опциональному значению optional, и если оно извлекается то в result вернется извлеченное значение. А если значение не извлекается, т.е. оно равно nil, то вернется значение defaultValue. Это сокращение следующей конструкции

 

Опубликовано в Iron ribbon, Фундаментальные основы Метки:

URL Schemes или как передать данные между iOS приложениями

Думаю, все разработчики мобильных iOS приложений в курсе, что из собственного приложения можно запускать сторонние приложения. Например можно запустить клиент Youtube, кликнув на ссылку на видео, или вызвать почтовый клиент если нажать на кнопку “написать письмо”. В конце концов – самый банальный пример – это открытие браузера при нажатии на гиперссылку. Подобное поведение реализуется путем добавления и настройки URL-схем в приложение. Более того, при помощи этого инструмента можно в операционной системе iOS зарегистрировать собственную URL-схему и использовать ее для передачи данных: т.е. реализовать запуск своего приложения из других приложений с заданными параметрами.

Подробнее »

Опубликовано в Реальные примеры, Уроки, Фундаментальные основы Метки: ,

LoadError – cannot load such file — nanaimo

LoadError – cannot load such file — nanaimo

Если при попытка установить какой либо pod у вас терминал выдает такую ошибку, то вот рецепт для ее устранения:

Удалить nanaimo

gem list | grep nanaimo //увидим nanaimo (0.2.3, 0.2.2)
sudo gem uninstall nanaimo -v 0.2.2

sudo gem uninstall nanaimo -> all
sudo gem install nanaimo
pod install -> наслаждайтесь. Все работает

 

 

Опубликовано в Iron ribbon Метки:

iOS plist преобразование в словарь

Задача

Нужно загрузить данные из plist файла, перевести эти данные в словарь (Dictionary) и использовать этот словарь для вывода таблицы. В итоге,  должно получится такое приложение:

Подробнее »

Опубликовано в Реальные примеры Метки: ,

Удалить одинаковые элементы из массива iOS на Swift 3

Задача

Нужно из массива удалить повторяющиеся элементы. При этом массив может содержать элементы любого типа.

Решение

Для удаления одинаковых элементов из массива следует написать универсальную функцию, которая принимает в качестве параметра аргумент типа “коллекция” и возвращает другой массив.

Внутри функции мы перебираем элементы исходного массива, и по одному проверяем содержание элемента в наборе added и если его там нет, до добавляем элемент в возвращаемый массив и в набор added. Как вы помните, в наборе не может быть двух одинаковых элементов, поэтому проверка на содержание в этом наборе является флагом добавления в возвращаемый массив.




Опубликовано в Iron ribbon, Фундаментальные основы Метки:

UITableView swipe to delete и другие возможности

Задача

Создать проект, в котором отображается таблица. По жесту swipe нужно открывать список кнопок с различными действиями. Например удалить строку в таблице.

Подробнее »

Опубликовано в Iron ribbon, Элементы UI Метки: ,

Глобальные переменные при программировании в iOS

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

Подробнее »

Опубликовано в Реальные примеры, Уроки, Фундаментальные основы

iOS Преобразование голоcа в текст на Swift 3

В 2016 году на WWDC Apple представила Speech framework, полезный API для распознавания речи. Speech является основой, которая используется Siri для распознавания речи. Если посмотреть повнимательней, то можно найти много фреймворков распознавания речи, доступных на сегодняшний день, но они либо очень дорого стоят, либо отвратительно работают. В этом уроке мы создадим iOS приложение  для преобразования речи в текст с помощью Speech.

Подробнее »

Опубликовано в Обработка данных, Реальные примеры, Уроки

Airdrop, UIActivityViewController или как сняь и отправить фото

Задача

Нужно написать приложение, с помощью которого можно сделать фотографию или выбрать фотографию из галереи, а затем отправить её по Airdrop или передать любому другому приложению, например мессенджеру или программе работы с электронной почтой.

Интерфейс будет не сложным, в центре будет UIImageView, которая будет отражать выбранную картинку, и три кнопки – захват фото с камеры, выбор фото из галереи, и кнопка отправить.

Подробнее »

Опубликовано в Реальные примеры, Уроки

Приложение Весы для iPhone с использованием 3D Touch

После выхода на рынок iPhone 6s и iPhone 6s Plus с экранами, которые поддерживают технологию 3D Touch, а App Store практически сразу появилось приложение для взвешивая слив и персиков.

Не могу с уверенностью сказать почему именно этих фруктов, но могу сказать однозначно почему именно фруктов. Дело в том, что сенсор экрана iPhone работает по принципу определения утечки тока с поверхности сенсора, а для этой самой утечки нужен живой палец либо что-то, что обладает электрической емкостью. Думаю, каждый знает, что на пластиковые стилус или ноготь экраны i-девайсов не срабатывают. Именно поэтому взвесить на том приложении что-то металлическое не получалось. Но фрукты имеют электрическую емкость, на них срабатывает сенсор и нормально срабатывает непосредственно 3D Touch.
Подробнее »

Опубликовано в Реальные примеры, Элементы UI
Сайт размещается на хостинге Спринтхост