swift разработка приложений под ios на основе фреймворка uikit книга 2

Swift разработка приложений под ios на основе фреймворка uikit книга 2

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Beginning Machine Learning in iOS: CoreML Framework [2019] Mohit Thakkar

Implement machine learning models in your iOS applications. This short work begins by reviewing the primary principals of machine learning and then moves on to discussing more advanced topics, such as CoreML, the framework used to enable machine learning tasks in Apple products.

Many applications on iPhone use machine learning: Siri to serve voice-based requests, the Photos app for facial recognition, and Facebook to suggest which people that might be in a photo. You’ll review how these types of machine learning tasks are implemented and performed so that you can use them in your own apps. Beginning Machine Learning in iOSis your guide to putting machine learning to work in your iOS applications.

What You’ll Learn
Understand the CoreML components
Train custom models
Implement GPU processing for better computation efficiency
Enable machine learning in your application

Who This Book Is For
Novice developers and programmers who wish to implement machine learning in their iOS applications and those who want to learn the fundamentals about machine learning.

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift. Основы разработки приложений под iOS и macOS [2018] Усов

Язык Swift молод, он растет, развивается и изменяется. Но основные подходы к программированию и разработке уже сформировались, и в новом, четвертом издании книги особое внимание уделяется решению конкретных задач.

Текст полностью переработан так, чтобы любой, интересующийся языком Swift, мог найти здесь и основы, и необходимую информацию по разработке приложений. Все коды, использованные в книге соответствуют Swift версии не ниже 4.1, iOS версии не ниже 11 и Xcode версии не ниже 9. Теперь вы не только изучите язык Swift, но и получите начальные сведения о принципах разработки полноценных приложений.

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift. Основы разработки приложений под iOS, iPadOS и macOS [2020] Усов Василий

Язык Swift молод, он растет, развивается и изменяется, хотя основные подходы к программированию и разработке уже сформировались. В новом, пятом издании книги была полностью переработана первая часть книги, что делает знакомство с языком Swift более комфортным, а весь текст актуализирован в соответствии с возможностями Swift 5.

В ходе долгого и плодотворного общения с читателями появилось множество идей, благодаря которым новое издание стало еще более полезным и насыщенным учебными материалами. Теперь вы не только изучите Swift, но и получите начальные сведения о принципах разработки полноценных приложений. Мир Swift постоянно меняется, людей со значительным багажом знаний и опыта за плечами еще просто не существует в силу возраста языка, поэтому вы можете стать одним из первых специалистов.

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift. Подробно [2020] Чейрд ин’т Вейн

Данная книга знакомит вас с навыками, необходимыми для создания
профессионального программного обеспечения для платформ Apple, таких как iOS и MacOS. Вы освоите такие мощные методы, как обобщение, эффективная обработка ошибок, протокольно-ориентированное программирование и современные шаблоны Swift. Издание рассчитано на программистов продвинутого и среднего уровней.

Создание своего первого игрушечного приложения для iOS или Mac на языке Swift — это весело. Написание безопасного, надежного программного обеспечения профессионального уровня — совсем другое дело. Язык Swift включает в себя удивительный набор очень мощных функций и поддерживает широкий диапазон стилей и методов программирования. Просто нужно засучить рукава и приступить к детальному изучению.

Переходя от одной концепции к другой, эта книга знакомит вас с навыками, необходимыми для создания профессионального программного обеспечения для платформ Apple, таких как iOS и Mac, а также на сервере с Linux.

Следуя многочисленным конкретным примерам, поучительным объяснениям и увлекательным упражнениям, в конечном итоге вы освоите такие мощные методы, как обобщения, эффективная обработка ошибок, протокольно-ориентированное программирование и современные шаблоны Swift.

Автор книги показывает особо важные и трудно выявляемые методики, которые он освоил на протяжении работы со Swift.

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift. Основы разработки приложений под iOS, iPadOS и macOS [2020] Усов

Язык Swift молод, он растет, развивается и изменяется, хотя основные подходы к программированию и разработке уже сформировались. В новом, пятом издании книги была полностью переработана первая часть книги, что делает знакомство с языком Swift более комфортным, а весь текст актуализирован в соответствии с возможностями Swift 5.

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

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

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift. Основы разработки приложений под iOS, iPadOS и macOS [2021] Василий Усов

Мечтаете стать iOS-разработчиком, написать собственное приложение и работать в крутой компании? Тогда эта книга для вас! Язык Swift прост, понятен и отлично подойдет как новичкам, так и опытным программистам. Чтобы начать писать код, вам потребуются только эта книга, компьютер и желание учиться. Все базовые концепции программирования и основы синтаксиса объясняются доступным языком, поэтому если вы никогда раньше не занимались разработкой, то эта книга — отличный старт. Теория чередуется с практическими примерами и кодом — так вы сразу сможете связать абстрактные понятия с реальными ситуациями. В каждой главе вас ждут тесты и домашние задания, которые помогут закрепить материал.

f09f92beСкачать книгу:
https://t.me/physics_lib/7238

eXOlnCDo80zDDRdjkateAq2vcekRoAT0M7jOBmTVaJzv NbdDktIV HQ0Rr7O69oRncWuMJT

Swift Programming: The Ultimate Beginner’s Guide to Learn swift Programming Step by Step, 3nd Edition [2021] Alexander Aronowitz

Swift is a general-purpose, multi-paradigm, object-oriented, functional, imperative and block structured language. It is the result of the latest research on programming languages and is built using a modern approach to safety, software design patterns by Apple Inc. It is the brand new programming language for iOS application, macOS application, watchOS application, tvOS application. Soon it became one of top 5 programming language and gained popularity among Apple developer community over the few years of time replacing the old school Objective C.

What you will learn:
• Understand core Swift components, such as operators, collections, control flows, and functions
• Learn how and when to use classes, structures, and enumerations
• Understand how to use protocol-oriented design with extensions to write easier-to-manage code
• Use design patterns with Swift to solve commonly occurring design problems
• Apply copy-on-write for your custom value types to improve performance
• Add concurrency to your applications using Grand Central Dispatch and Operation Queues
• Implement generics to write flexible and reusable code

Who this book is for:
This book is for developers who want to delve into the latest version of Swift. If you are a developer looking to learn in a practical way by working with code, then this book is for you. A basic understanding of Apple’s tools will be beneficial but not mandatory. All examples should work on the Linux platform as well.

f09f92beСкачать книгу
https://t.me/physics_lib/7528

Источник

Swift. Разработка приложений под iOS на основе фреймворка UIKit

1627468942 cov250mkНазвание: Swift. Разработка приложений под iOS на основе фреймворка UIKit
Автор: Василий Усов
Издательство: swiftme.ru
Год: 2021
Страниц: 493
Язык: русский
Формат: pdf
Размер: 19.0 MB

В этой книге вы продолжите свое знакомство с языком программирования Swift и средой разработки Xcode. Узнаете, что такое архитектура проекта, какой она бывает и из чего состоит; как приложение работает в операционной системе, каков его жизненный цикл и жизненный цикл его отдельных элементов; как происходит обмен данными и как передаются события. И все это вы попробуете на практике, рассматривая возможности фреймворка UIKit.

Swift – один из самых современных языков программирования, который вобрал в себя все лучшее из C, Objective-C, Java, Python и многих других. На сегодняшний день он входит в топ-7 по популярности среди всех языков программирования и возглавляет рейтинг языков для мобильной разработки. Создание на Swift приложения под iOS и macOS – это очень творческий процесс, который позволит вам проявить себя. В каждой написанной строчке вы ощутите его лёгкость, гибкость и широкие возможности.

Для кого написана книга:
Книга, которую вы держите в руках, предназначена для начинающих разработчиков, имеющих базовые знания синтаксиса и возможностей Swift. Если вы еще не знакомы с данным языком, но хотите его освоить, начните свое обучение с предыдущей книги серии «Swift. Основы разработки приложений под iOS и macOS».

В ходе чтения книги вы встретите не только теоретические сведения, но и большое количество практических примеров и заданий, выполняя которые вы углубите свои знания в области разработки iOS-приложений на языке Swift. Вам предстоит пройти большой путь, и поверьте, он будет очень интересным. Книга предназначена, в первую очередь, для изучения практической стороны и принципов разработки полноценных приложений.

Источник

Swift. Разработка приложений под iOS. Василий Усов. Сборник (2 книги)

1627477088 cov350m Название: Swift. Разработка приложений под iOS. Василий Усов. Сборник (2 книги)
Автор: Василий Усов
Издательство: Питер, swiftme.ru
Год: 2021
Страниц: 545 + 493
Язык: русский
Формат: pdf
Размер: 22.9 MB

Для кого написаны книги:
Ответьте для себя на следующие вопросы:
— Хотите ли вы научиться создавать программы под iOS, iPadOS, macOS, watchOS и tvOS?
— Вам больше нравится обучение в практической форме, чем скучные и монотонные теоретические лекции?
Если вы ответили на них утвердительно, то эти книги для вас.

Материал в книге подкреплен практическими домашними заданиями. Мы вместе пройдем путь от самых простых понятий до решения наиболее интересных задач, которые заставят ваш мозг усердно работать.

Не стоит бояться, Swift вовсе не отпугнет вас (как это мог бы сделать Objective-C), а процесс создания приложений окажется очень увлекательным. А если у вас есть идея потрясающего приложения, то совсем скоро вы сможете разработать его для современных мобильных систем iOS и iPadOS, стационарной системы macOS или Linux, смарт-часов Apple Watch или телевизионной приставки Apple TV.

Список книг:
1) Swift. Основы разработки приложений под iOS, iPadOS и macOS. 6-е изд.
2) Swift. Разработка приложений под iOS на основе фреймворка UIKit

Источник

Swift. Обучение разработке под iOS и macOS

Все необходимое и самое интересное для новичков в разработке на языке программирования Swift.

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

Swift. Обучение разработке под iOS и macOS запись закреплена

Друзья, f09f9883
Книга 2 «Swift. Разработка приложений под iOS на основе фреймворка UIKit» Василия Усова поступила из типографии.

Заказать ее в бумажном или электронном формате можно только на сайте swiftme.ru. Спешите, пока книга есть в наличии, практически весь тираж продан по предзаказу.

EZpNAzbzCQqkB rwAwACHqj07PKSGlYdnEptlyJTluj7tCozHp4ULHlIl0v1A0Le91Q4I2sa

lkz8Anl2ScmsdaMJBzqlcSjjhlH 8Uzo2rfAwJRSsrmia35PxUYaFCyZY5wFvL1XUFZw4x7SoVCBfiFJ6WDJ Ddl

WdcFNSHjc2HTmmKgoswYkprDfb5YYnulHQWb1Mxp3Xs

PtEs9nDQ8Ec

qlbKdVZITCc

Swift. Обучение разработке под iOS и macOS запись закреплена

Основная проблема разработчика на UIKit в том, что ему нужно найти ответ на вопрос

e29d93Как продолжать писать приложения на UIKit, после того, как он попробовал SwiftUI в делеe29d93

Пост конечно шуточный, но со здравой долей истины. Попробуй SwiftUI и то, что возможно создать на нем за пол часа, и ты захочешь переписать остальные проекты, над которыми сидели предыдущие месяцы) Это как Combine, да и реактивное программирование в общем: получив в руки этот молоток все вокруг стало казаться гвоздем.
Показать полностью.

Ну а если по делу, то вот вам не особо известный, но очень крутой бесплатный курс по SwiftUI. В нем все, что требуется для старта, от основ до более продвинутого использования.

Как смотреть с плохим знанием английского

f09fa496Ни для кого не секрет, что не так давно Яндекс открыл возможность синхронного перевода видео. Пользуйтесь! Работает довольно достойно. Но лучше все же изучайте английский, он вам потребуется, когда будете устраиваться на работу с иностранную компанию

5Kmqm9oJELQ

Swift. Обучение разработке под iOS и macOS запись закреплена

f09f92acТекстовое поле для ввода кода подтверждения из смс или email

В ходе работы над небольшой социалкой Swyzzy (https://github.com/DobbyWanKenoby/Swyzzy) потребовалось реализовать поле для ввода кода подтверждения. Посмотрел рынок и нашел простую и симпатичную реализацию в мессенджере Signal.
Показать полностью.

Запилил и вспомнил, что недавно в чате (https://t.me/usovswift) спрашивали про реализацию такого поля. Вся сложность была в том, как именно делать это: одним или несколькими текстовыми полями, а так же как реализовать переход между ними при вставке и удалении символов.

В итоге оформил в качестве SPM-пакета.

f09f9392Кратко о возможностях:

— Настройка количества блоков и элементов в этих блоках (видите в середине разрыв между блоками?);
— использование как в коде, так и с помощью Interface Builder;

f09f9ba0В общем, если кому потребуется:

— пользуйтесь в качестве готового решения;
— используйте в качестве основы для собственной реализации;
— говорите, что еще требуется, я допилю.

В следующем релизе расширю возможности кастомизации и доступное API. Далее добавлю конфигуратор элементов, с помощью которого можно будет формировать поле любого вида (текстовые префиксы, постфиксы, сепараторы между блоками).

Swift. Обучение разработке под iOS и macOS запись закреплена

Swift. Обучение разработке под iOS и macOS запись закреплена

f09f8f9fПлощадки для прокачки навыков программирования

Прошел отпуск, вышел Xcode 13 и Swift 5.5, а значит пора возвращаться к каналу. Скоро мы погрузимся в изучение акторов, новой асинхронки и зароемся в исходный код языка на яблочном гитхабе. А сейчас о другом.

Советую посмотреть каждый из сервисов.

— CoderByte
— Exercism
— Codewars
— CodingGame

Существует и множество других площадок, но вам несомненно хватит и четырех приведенных в статье.

Знаете и используете другие? Советуйте в комментариях.

Удачного кодинга!f09f91a9e2808df09f92bbf09f91a8f09f8fbbe2808df09f92bbf09fa791f09f8fbef09f92bb

Swift. Обучение разработке под iOS и macOS запись закреплена

f09f939aОтправка книг в период с 26 августа по 9 сентября.

Друзья, в указанные дни я буду в отпуске, и со мной все работники склада, весь состав корректоров/редакторов, курьеры, руководство транспортного отдела. Дома остается только кошка, но она наотрез отказалась заниматься рассылкой книг.

tO17T7u5JmAg05991QGHJ20J8EsHB8NndtETTIyfJTaktCItPIt5N8SKPvyObUPT92ISdNUYdGShySTrF 6CUOD3

XecEGnaHjolnedieV1168Xc9vmOq44ttv2H4JwmnbkAte0F77Jyi11oFXBH0nDzA03Zcpw8T

Swift. Обучение разработке под iOS и macOS запись закреплена

Swift. Обучение разработке под iOS и macOS запись закреплена

f09f939aИдеальный руководитель
Ицхак Калдерон Адизес

Любой программист, имеющий амбиции, будет стремиться к тому, чтобы стать тим-лидом. Но работать с людьми, это не просто уметь проводить декомпозицию задач и раздавать тикеты в Jira. Это занятие из категории психологии, где у каждого есть свои желания, потребности, возможности.
Показать полностью. И как бы вам не хотелось отделить личную жизнь команды от работы и посадить каждого работника в непробиваемый кокон, исключив все эмоциональные контакты, этого сделать не получится. Да и не нужно.

Книга о том, какие типы руководителей бывают, почему невозможно стать идеальным и как эффективно выполнять поставленные задачи. Звучит пессимистично, но в действительно очень книга помогает найти себя и благодаря этому улучшить свои положительные стороны.

Стремитесь становиться лучше!
Развивайтесь не только в профессиональном плане, но и в социальном!

Другие полезные книги для тру-девелопера по тегу #книга

KJBxWEpb3u5myUdt9p2cS0mH1p E0z6Rvp6xvP3Zhonj1 mof LUhW algilws4t8fNINkq8ThuA7VHLNXD7uGSm

qwPR31fYp614nS625vuPbwdMKDibvZAzaZWjrumOwvUUBXiXcUj7Va2FdiyeD4R77iyAlp9P

KJBxWEpb3u5myUdt9p2cS0mH1p E0z6Rvp6xvP3Zhonj1 mof LUhW algilws4t8fNINkq8ThuA7VHLNXD7uGSm

Swift. Обучение разработке под iOS и macOS запись закреплена

Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.

1e283a3Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet

2e283a3Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue

Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.

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

3e283a3Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable

Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).

Источник

Книга «Swift. Основы разработки приложений под iOS, iPadOS и macOS. 6-е изд. дополненное и переработанное»

По сравнению с предыдущим изданием эта книга содержит следующие изменения и дополнения:

Формат книги изменен (теперь она больше и толще).
Учебный материал актуализирован в соответствии со Swift 5.3 и Xcode 12.
Переписаны и обновлены большинство глав в книге.
Добавлен новый материал, который ранее не входил в книгу:

Обновлены графические материалы (схемы, рисунки, графики и скриншоты).

Исправлены найденные опечатки и учтены пожелания и замечания читателей по оформлению и содержанию.

Вы уже начали путешествие в мир Swift. Совсем скоро вы выполните первые обязательные шаги перед разработкой собственных приложений. Вы узнаете, как завести собственную учетную запись Apple ID, как подключиться к программе Apple-разработчиков, где взять среду разработки Swift-приложений и как с ней работать.

Весь последующий материал книги разделен на шесть частей:

Часть I. Базовые возможности Swift. После знакомства со средой разработки Xcode вы изучите базовые возможности Swift. Вы узнаете, какой синтаксис имеет Swift, что такое переменные и константы, какие типы данных существуют и как всем этим пользоваться при разработке программ.

Часть II. Контейнерные типы данных. Что такое последовательности и коллекции и насколько они важны для создания ваших программ? В этой части книги вы познакомитесь с наиболее важными элементами языка программирования.

Часть III. Основные возможности Swift. Третья часть фокусируется на рассмотрении и изучении наиболее простых, но очень интересных средств Swift, позволяющих управлять ходом выполнения приложений.

Часть IV. Введение в разработку приложений. Эта часть посвящена изучению основ среды разработки Xcode, а также созданию двух первых консольных приложений.

Часть V. Нетривиальные возможности Swift. В пятой части подробно описываются приемы работы с наиболее мощными и функциональными средствами Swift. Материал этой части вы будете использовать с завидной регулярностью при создании собственных приложений в будущем. Также здесь вас ждет большая практическая работа — создание первого интерактивного приложения в Xcode Playground.

Часть VI. Введение в iOS-разработку. В конце долгого и увлекательного пути изучения языка и создания простых приложений вам предстоит окунуться в мир разработки полноценных программ. Из этой части вы узнаете основы создания интерфейсов и работы программ в Xcode «под капотом». Все это в будущем позволит вам с успехом осваивать новый материал и создавать прекрасные проекты.

Инициализаторы и деинициализаторы

Инициализатор (конструктор) — это специальный метод, выполняющий подготовительные действия при создании экземпляра объектного типа данных. Инициализатор срабатывает при создании экземпляра, а при его удалении вызывается деинициализатор.

27.1. Инициализаторы

Инициализатор выполняет установку начальных значений хранимых свойств и различных настроек, которые нужны для использования экземпляра.

При реализации собственных типов данных во многих случаях не требуется создавать собственный инициализатор, так как классы и структуры имеют встроенные инициализаторы:

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

Инициализаторы класса и структуры, производящие установку значений свойств, называются назначенными (designated). Вы можете разработать произвольное количество назначенных инициализаторов с отличающимся набором параметров в пределах одного объектного типа. При этом должен существовать хотя бы один назначенный инициализатор, производящий установку значений всех свойств (если они существуют), и один из назначенных инициализаторов должен обязательно вызываться при создании экземпляра. Назначенный инициализатор не может вызывать другой назначенный инициализатор, то есть использование конструкции self.init() запрещено.

Инициализаторы наследуются от суперкласса к подклассу.

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

Инициализатор может устанавливать значения констант.

Внутри инициализатора необходимо установить значения свойств класса или структуры, чтобы к концу его работы все свойства имели значения (опционалы могут соответствовать nil).

Вспомогательные инициализаторы

Помимо назначенных, в Swift существуют вспомогательные (convenience) инициализаторы. Они являются вторичными и поддерживающими. Вы можете определить вспомогательный инициализатор для проведения настроек и обязательного вызова одного из назначенных инициализаторов. Вспомогательные инициализаторы не являются обязательными для их реализации в типе. Создавайте их, если это обеспечивает наиболее рациональный путь решения поставленной задачи.

Синтаксис объявления вспомогательных инициализаторов не слишком отличается от синтаксиса назначенных.

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

В теле инициализатора обязательно должен находиться вызов одного из назначенных инициализаторов.

Вернемся к иерархии определенных ранее классов Quadruped, Dog и NoisyDog. Давайте перепишем класс Dog таким образом, чтобы при установке он давал возможность выводить на консоль произвольный текст. Для этого создадим вспомогательный инициализатор, принимающий на входе значение для наследуемого свойства type (листинг 27.1).

В результате при создании нового экземпляра класса Dog вам будет предложено выбрать один из двух инициализаторов: init() или init(text:). Вспомогательный инициализатор вызывает назначенный и выводит текст на консоль.

Вспомогательный инициализатор может вызывать назначенный через другой вспомогательный инициализатор.

Наследование инициализаторов

Наследование инициализаторов отличается от наследования обычных методов суперкласса. Есть два важнейших правила, которые необходимо помнить:

Отношения между инициализаторами

В вопросах отношений между инициализаторами Swift соблюдает следующие правила:

image loader

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

Вызов любого инициализатора из изображенных должен в итоге вызывать назначенный инициализатор суперкласса (левый верхний блок).

Проваливающиеся инициализаторы

В некоторых ситуациях бывает необходимо определить объектный тип, создание экземпляра которого может закончиться неудачей, вызванной некорректным набором внешних параметров, отсутствием какого-либо внешнего ресурса или иным обстоятельством. Для этой цели служат проваливающиеся (failable) инициализаторы. Они способны возвращать nil при попытке создания экземпляра. И это их основное предназначение.

Для создания проваливающегося инициализатора служит ключевое слово init? (со знаком вопроса), который говорит о том, что возвращаемый экземпляр будет опционалом или его не будет вовсе.

В теле инициализатора должно присутствовать выражение return nil.

Рассмотрим пример реализации проваливающегося инициализатора. Создадим класс, описывающий сущность «прямоугольник». При создании экземпляра данного класса необходимо контролировать значения передаваемых параметров (высота и ширина), чтобы они обязательно были больше нуля. При этом в случае некорректных значений параметров программа не должна завершаться с ошибкой.

Для решения данной задачи используем проваливающийся инициализатор (листинг 27.2).

Инициализатор принимает и проверяет значения двух параметров. Если хотя бы одно из них меньше или равно нулю, то возвращается nil. Обратите внимание на то, что, прежде чем вернуть nil, инициализатор устанавливает значения всех хранимых свойств.

В классах проваливающийся инициализатор может вернуть nil только после установки значений всех хранимых свойств. В случае структур данное ограничение отсутствует.

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

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

Вы можете использовать проваливающийся инициализатор для выбора подходящего члена перечисления, основываясь на значениях входных аргументов. Рассмотрим пример из листинга 27.3. В данном примере объявляется перечисление TemperatureUnit, содержащее три члена. Проваливающийся инициализатор используется для того, чтобы вернуть член перечисления, соответствующий переданному параметру, или nil, если значение параметра некорректно.

При создании экземпляра перечисления в качестве входного параметра symbol передается значение. На основе переданного значения возвращается соответствующий член перечисления.

У перечислений, члены которых имеют значения, есть встроенный проваливающийся инициализатор init?(rawValue:). Его можно использовать без определения в коде (листинг 27.4).

Члены перечисления TemperatureUnit имеют значения типа Character. В этом случае вы можете вызвать встроенный проваливающийся инициализатор, который вернет член перечисления, соответствующий переданному значению.

Альтернативой инициализатору init? служит оператор init. Разница в них заключается лишь в том, что второй возвращает неявно извлеченный экземпляр объектного типа, поскольку для работы с ним не требуется дополнительно извлекать опциональное значение. При этом все еще может возвращаться nil.

Для Хаброжителей скидка 25% по купону — Swift

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • swift разработка приложений под ios и ipados книга 2
  • swift основы разработки приложений под ios и macos книга