На Лекции 3 профессор говорит по большей части о слое, который лежит под слоем пользовательского интерфейса (UI). А именно о языке Swift и о фреймворке Foundation, который “живет” в верхней части Core Services. В этой лекции вообще нет ничего о UI.
Лекция начинается с подробного рассказа о том, что представляет собой Optional и как интерпретировать такой «синтаксический сахар» для него, как ?, ! и ??, а также «цепочки» Optional. Кратко представлены кортежи (tuples) и диапазоны Range<T> .
Затем анализируются основные структуры данных в Swift : class, struct, enum. Обсуждается их сходство и различия. Особенное внимание уделено семантике value type и reference type. Подробно представлен синтаксис именования параметров функций в Swift. Рассматриваются самые «крутые» возможности свойств: наблюдатели willSet{} и didSet {} и отложенная инициализация lazy. Уделено должное внимание массивам Array<T>, словарям Dictionary <Key, Value>, строкам String и их интересным методам.
Apple проделало сверхъестественную работу по взаимозаменяемости («bridging») Swift массивов Array, словарей Dictionary, Int, Double и структур данных Objective-С: NSArray, NSDictionary, NSString … . Как только вы вызываете функцию, требующую, чтобы параметр был одним или другим, то взаимозаменяемость работает автоматически и “магически”. В лекции показано, как можно пользоваться преимуществами этой взаимозаменяемости («bridging»).
В Лекции 3 очень основательно рассказывается об инициализации, но так, чтобы, по возможности, ее можно было бы избежать.
Использованию специального типа AnyObject уделено особое внимание. В версии iOS 9 он встречается редко и используется только как средство совместимости со старыми Objective-C APIs или как «непрозрачный» объекта типа Property List в NSUserDefaults. Если вы строите любую структуру данных только из классов, вы получаете Property List. Но это просто термин. Как с работать с этой абстракцией показано в демонстрационном примере создания «программируемого калькулятора». Код «программируемого калькулятора» по просьбе профессора размещен в Задании 1 на Github для Xcode 7 и Swift 2.2. Для Swift 3.0 и Xcode 8 код находится на Github, а для Swift 3 .2 и Xcode 9 — также на Github.
Лекция 3 и слайды на английском языке находятся на iTunes название “3. More Swift and Foundation Framework.”
Русскоязычный неавторизованный конспект лекции 3, хронометрированный через каждые 5 минут, и представленный в виде PDF-файла, который можно скачать и использовать offline, а также Google Doc доступны на платной основе.
Татьяна, подскажите пож., в 3 лекции часто упоминаются задания на чтение, что это за задания? В домашних заданиях упоминается доп. материал, это о нем речь?
Задания на чтение или Reading Assignments находятся на iTunes U или здесь. В них профессор указывает порядок изучения синтаксиса языка Swift, ссылаясь на «родную» документацию Apple по Swift «Swift Programming Language«. Эти Задания на чтение являются путеводителем по чтению документации: что прочитать в первую очередь, а что отложить на потом. Это заставляет студентов подготовиться к восприятию Лекции, которую он читает. Задания на чтение на английском, и я не стала их переводить, потому что там в основном ссылки на документацию, хотя, конечно, есть очень полезные замечания.
Татьяна, очень понравились Ваши первые две лекции. Перевод просто отличный. Хочу купить следующие лекции. Живу в Германии. Имею MasterCard. Но оплата в рублях не получилась. Есть ли какие-нибудь другие варианты для иностранцев?
Таких запросов много. Сейчас разбираемся.
Я вам ответила по почте, которая указана в вашем комментарии.
Сделайте пожалуйста возможность оплаты через WebMoney.
А правильно ли я понимаю, что конструктор класса CalculatorBrain() несёт в себе два процесс instantiation и initialization ? в которой instantiation это создание экземпляра класса на основе макета ?
Правильно.
Правильно я ли я понял PropertyList — это к примеру Array с элементами типа Anyobject или же Dictionary with value type AnyObject, где мы аккумулируем определённые данные для того, что к примеру возобновить настройки нашего приложения после того, как юзер закрыл его и запустил заново. ?
Здравствуйте,а касательно создания enum’в.
Получается, что если мы сделали макет enum’a:
enum Direction : String {
case Left = «left»
case Right = «right»
}
то var direction = Direction.Left — это процесс инициализации ? так же как при создание instance of classes: var cat = Cat() ?
Все верно, но вы выбрали простейший вариант без ассоциированных значений. Теперь попробуйте все повторить с ассоциированными значениями, как профессор.
Спасибо.
С более сложными всё понятнее, касательно процесса инициализации к примеру, как в данном случае с rawValue
var direction = Direction(rawValue: «right»)
и узнал интересный момент, что если у enum назначен rawValue, то уже нельзя элементам enum’a задать associated value
Доброго дня!
Живу в Україні оплата MasterCard в рублях із карти приват банку не пройшла.
Можливо у Вас є ще варіанті оплати?
Я вам ответила по email, который вы указали.
Татьяна, можно и мне варианты как вам можно оплатить за доступ к файлам. Пробовал оплатить с двух карт(обе зарубежных банков), платеж не проходит.
Где вообще написано о цене, платности курса и тд?
Как мне вообще об этом узнать?
В самом конце того поста, к которому вы писали этот комментарий, есть ссылка «на платной основе» — https://bestkora.com/IosDeveloper/dostup-k-lektsii-3-ios-9/. Там указаны суммы и порядок оплаты.
Есть более новая версия этого курса https://bestkora.com/IosDeveloper/ios-10-swift-3/