Лекция 16 CS193P Winter 2015 — Фотокамера, Постоянное хранение и Вставка Картинки в Картинку (Camera, Persistence and Embed Segues)

Screen Shot 2015-10-07 at 9.11.40 PM

В Лекции 16  рассматриваются три главные темы:

  1. фотокамера, то есть как сделать фотографию и/или видео с помощью фотокамеры и получить их в своем приложении.
  2. постоянное хранение данных больших объемов на iOS устройствах. Это очень важная тема о том, как хранить информацию в вашей флэш памяти на iPhone, iPad и т.д. В Лекции дается обзор различных способов хранения.
  3. вставка картинки в картинку с помощью Embed Segues. Эта технология помогает вам увидеть, что происходит в другом месте, когда вы что-то делаете в данном месте

Фотокамера ассоциируется с классом UIImagePickerController. Пол Хэгерти очень подробно рассказывает как создавать, конфигурировать и модально представлять его с помощью метода presentViewController. Класс UIImagePickerController не работает без делегата, поэтому подробно рассматриваются методы делегата для доступа как к оригинальной, так и отредактированной (если это разрешено) фотографии, сделанной пользователем. Выбранная  фотография (изображение) размещается на экране, но не в стандартном UIImageView.

Пол Хэгерти использует одну очень интересную хитрость представления  UIImageViews на экране. Он создает generic UIView и размещает UIImageView внутри этого контейнера, самостоятельно управляя его размером без привлечения механизма AutolayoutПолученное с камеры изображение запоминается в файловой системе iOS приборов.

Но предварительно Пол Хэгерти делает обзор 4-х способов хранения больших объемов данных, считая только 2 из них приемлемыми для работы в Swift: файловая система типа Unix и Core Data. Именно эти два способа он подробно рассматривает в Лекции.

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

И последняя тема Лекции 16 — Embed Segues. Это, когда вы берете self.view одного MVC и помещаете в иерархию views другого MVC.  Получается очень интересная вставка одного MVC в другой. Это очень мощная техника инкапсуляции, но в то же время очень легкая в использовании, хотя и требует  внимания к определенным нюансам.

Лекция и слайды на английском языке находятся на  iTunes название “16. Camera, Persistence, and Embed Segues.”  

Код для демонстрационных примеров Trax, Camera File Embed Swift 1.2 можно найти для Swift 1.2 на сайте Stanford, а для Swift 2.0 и Xcode 7 здесь.

Русский неавторизованный конспект лекции , хронометрированный через каждые 5 минут и представленный в PDF — файле, доступен на

Лекция 16 CS193P Winter 2015 iOS 8.pdf