Мультизадачность в iOS  реализована C-библиотекой Grand Central Dispatch (GCD). Это очень удобный инструмент, который за сценой самостоятельно реализует работу, и  разработчику не надо с этим заморачиваться. Разработчик не создает потоки, он оперирует с понятиями «Queue»  — очередь. Т.е. разработчик ставит …

Multithreading в Swift — приемы и примеры. Grand Central Dispatch (GCD) Read more »

Пример класса, у которого свойства — функции. Кстати, первое свойство опционально, второе — нет, просто замыкание пустое. class Grapher { var yForX: ((Double) -> Double?)? var action: () -> Void = {} }

Подробно про каждый метод ViewController Lifecycle в предыдущей статье Инициализация  (из storyboard) awakeFromNib Подготовка к переходу Установка outlets свойств viewDidLoad Эти две пары методов вызывается когда  view контроллера появляется/уходит с экрана … viewWillAppear and viewDidAppear viewWillDisappear and viewDidDisappear Эти методы обработки геометрии можно вызывать …

Жизненный цикл View Controller шпаргалка Read more »

Итак жизненный цикл контроллера начинает с создания. Как я уже писал раньше  — в 99% случаях создание происходит в storyboard, и «за сценой» происходит инициализация А что потом? А вот что: Подготовка  к переходу в контроллер Установка outlet свойств Появление …

View Controller Lifecycle, жизненный цикл View Controller Read more »

В 99% случаях мы будем создавать интерфейс с помощью сториборда (storyboard) — встроенного в XCode инструмента Interface Builder. Поэтому всем элементам в этом storyboard  нужно задавать идентификаторы, чтобы потом их найти и обработать. В коде эти идентификаторы нужно собирать в …

Создание интерфейса, storyboard Read more »

Предположим есть переход (segue) и он указывает на UINavigationController. Для того чтобы получить контроллер, который показывает UINavigationController, нужно обратиться к свойству visibleViewController // // proSwift.ru // var destination = segue.destinationViewController if let navCon = destination as? UINavigationController { destination = navCon.visibleViewController! }  

В каждом контроллере, который содержит множественную  MVC, есть свойство, которое содержит массив контроллеров, которые в нем присутствуют // // proSwift.ru // var viewControllers: [UIViewController] {get set} let navController = UINavigationController() var arrayOfControllers = [UIViewController]() arrayOfControllers = navController.viewControllers

Если мы пишем протокол, с помощь которого мы хотим получить данные (DataSource)  то в функции мы всегда должны передать указатель на класс, в который мы эти данные хотим получить: // // proSwift.ru // protocol FaceViewDataSource: class { func smilinessForFeceView(sender: FaceView) …

Протокол и источник данных (DataSource) на примере Read more »