- as используется для безопасного восходящего приведения, когда тип объекта гарантированно может быть приведён к указанному типу (например, суперклассу или протоколу).
- as! — это принудительное нисходящее приведение. Оно требует уверенности в типе объекта, иначе приложение упадёт при ошибке.
- as? — это безопасное нисходящее приведение, при котором результат будет опционалом. Если приведение невозможно, возвращается nil.
Таким образом:
- as — безопасно и для "поднятия" вверх по иерархии.
- as! — рискованно, используется только если уверен в типе.
- as? — гибко и безопасно, но требует работы с опционалом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
28%
Использование generic UIView
49%
Применение UITextField с inputView
18%
Создание протоколов для ввода
5%
Использование UIStackView для компоновки
💊8
Anonymous Quiz
1%
Array
10%
Set
88%
Dictionary
2%
List
Если «хамыкан» — строка или неизвестный объект, будет ошибка типов. Компилятор или рантайм не сможет преобразовать это значение в Double, и произойдёт сбой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊7🤔2
Anonymous Quiz
45%
FileManager
25%
DispatchIO
27%
NSFileManager
3%
FileHandle
Anonymous Quiz
37%
Использование нескольких блоков catch
24%
Использование объединения типов в одном блоке catch
14%
Определение обобщенного типа исключений
25%
Использование паттерн матчинга в catch
Reference (объектное поведение, ссылочный тип):
-
-
-
-
-
Они наблюдают за изменениями в объектных классах и позволяют отслеживать состояние.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
10%
size
9%
length
78%
count
4%
total
Anonymous Quiz
96%
isEmpty
3%
count
1%
length
0%
size
Асинхронная задача начнёт выполнение независимо от очереди, так как Task использует Swift Concurrency runtime, который сам решает, где и как исполнять задачу. Она не заблокирует очередь, но может быть приостановлена и возобновлена.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
6%
forceUnwrap()
21%
optionalChaining()
35%
if let
38%
guard let
🤔16💊15
Anonymous Quiz
30%
atomic
4%
nonatomic
41%
queue
26%
synchronized
- удобное описание моделей;
- автоматическую синхронизацию данных;
- механизмы сохранения в SQLite (или других форматах);
- поддержку undo, lazy loading, валидации и интеграции с UI.
Core Data особенно полезна в приложениях с богатой моделью данных, связями и сложной логикой.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
50%
Использование NotificationCenter для подписки на UIDeviceOrientationDidChangeNotification
15%
Применение KVO на UIDevice.current.orientation
22%
Использование метода viewWillTransition(to:size:)
13%
Применение глобального слушателя в AppDelegate
Anonymous Quiz
6%
Использование Promise
33%
Применение try-catch для каждого запроса
46%
Использование группы DispatchGroup с обработкой ошибок
14%
Применение Combine с операторами для управления ошибками
💊2
1. Garbage Collector (GC):
• Автоматически освобождает память от объектов, на которые нет ссылок.
• Работает асинхронно, что может вызывать паузы ("stop-the-world") в программе.
2. ARC (Automatic Reference Counting):
• Управляет памятью синхронно, подсчитывая ссылки на объекты.
• Когда счётчик ссылок объекта достигает нуля, память освобождается сразу.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
2%
static
2%
final
27%
class
69%
override
💊10
Anonymous Quiz
33%
Использование функций обратного вызова
16%
Применение делегатов
12%
Создание NotificationCenter событий
39%
Использование комплекса условий в блоке завершения
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Anonymous Quiz
8%
prepend(_:)
22%
append(_:)
68%
insert(_:at:)
2%
push(_:)