Архив метки: swift 2.0

Swift: Automatic Reference Counting (Автоматический подсчет ссылок)

Работает только с reference типам, что логично. Каждый раз как мы создаем экземпляр класса, ARC выделяет кусок памяти для хранения информации об этом экземпляре (тип экземпляра + значения всех хранимых свойств) Когда ссылок на этот экземпляр не станет — ARC автоматически освободит занимаемую этим экземпляром память. Работает это за счет подсчета ссылок на экземпляр. Каждое свойство, или переменная имеющие сильную… Читать далее »

Swift: Initialization (Инициализация)

Подразделы: Customizing Initialization — кастомизированная инициализация Default Initializers – инициализаторы по умолчанию Memberwise Initializers for Structure Types (Почленный инициализатор для структуры) Initializer Delegation for Value Types — Делегирование инициализаторов для значимых типов Class Inheritance and Initialization (Наследование классов и инициализация) Two-Phase Initialization – двухфазовая инициализация Failable Initializers (Проваливающиеся инициализаторы) Required Initializers – требуемые инициализаторы Setting a Default Property Value with… Читать далее »

Swift: Methods (Методы)

Методы — это функции прикрепленные к типу (как ссылочному типу так и значимому типу) или его экземпляру и имеющие доступ к его переменным По сути все было описано в разделе Functions (Функции) Как я уже говорил есть доступ к переменным, вызываются методы по точке

Система именования методов в Swift обычно подразумевает, что имя метода заканчивается на By, With, For,… Читать далее »

Swift 2.0: Optional Pattern (Паттерн опционала)

Паттерн опционала приводит значения хранящиеся в Some(T) случае перечислений Optional/ImplicitlyUnwrappedOptional к нормальному типу.

Что является упрощенной формой от Enumeration Case Pattern

Swift 2.0: Enumeration Case Pattern (Паттерн выбора перечисления)

В Swift 2.0 расширили применение паттерна Enumeration Case не только на switch, но и на if, while, guard и for-in

Раньше нужно было делать полноценную проверку

теперь достаточно сделать так

в циклах так же такое доступно

Так же можно использовать при работе с опционалами

Swift: Closures (Замыкания)

Замыкания подобны блокам в Objective-C Так называются блоки функциональности, захватывающие переменные из контекста Синтаксис: { (parameters) -> returnType in …//код } По большому счету это обрамленный в фигурные скобки тип функции + оператор in + тело функции Бывает три разновидности замыканий — глобальные функции — замыкание имеющее имя, и не захватывающее никаких значений — вложенные функции, — замыкание имеющее имя… Читать далее »

Swift: Functions (Функции)

В общем виде: func имяФункции(список переменных) -> Тип возвращаемого значения Пример:

Этот пример интересен тем, что функция возвращает optional tuple (опциональный кортеж), что позволяет вызвать эту функцию и работать с возвращаемым значением, либо корректно обработать отсутствие результата

В консоль выведется: result Поговорим о правиле вызова функции. Swift 1.2 При вызове функции мы не можем указывать внутренне имя аргумента… Читать далее »

Swift 2.0: guard (охранный оператор)

В swift 1.2 мы использовали if, когда делали привязку опционала (optional binding), но проблема в том, что приведенное к типу значению мы могли использовать только внутри блока if

Поэтому ввели оператор guard, который в отличии от if не имеет тела в случае успеха, только обязательный else в случае если привязка типа закончилась без успеха. Обычно в этом else пишут… Читать далее »

Swift: If and Switch (если и свич)

If (Если) и Switch (Переключатель) If — оператор проверки условия, если истинно — выполняется код, если нет — выполняется код из блока else, если он есть. Так же можно составлять подряд несколько условий (else if), но в этом случае разумней использовать оператор switch

Switch, в русском языке не переводят, никто не говорит переключатель, switch — он и в африке… Читать далее »

Swift: Loops (Циклы)

Есть два вида циклов: 1) с предусловием, четко обозначающим сколько раз должен выполниться цикл — for 2) цикл который будет выполняться пока условие цикла не станет false — while For делится на 2 подвида: for-in и for for-in пробегается по элементам последовательности

Из интересного только возможность не обозначать переменную внутри цикла, если она не нужна с помощью символа подчеркивания… Читать далее »