При компиляции Swift превращает классы в структуру, включающую таблицу виртуальных методов, информацию о типе и указатели на родительский класс (если он есть). Если класс помечен final, компилятор знает, что он не будет переопределён, и может сделать вызовы более эффективными (например, встроить методы напрямую).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Anonymous Quiz
19%
Использование defer и throw
16%
Применение Transaction блока
7%
Создание кастомного transaction manager
57%
Реализация с помощью do-try-catch
👍1
Anonymous Quiz
31%
Data Binding
25%
Real-time Input
38%
Event Handling
5%
Live Data
Чтобы создать вью с нестандартной формой, нужно:
1. Переопределить метод draw(_:) в кастомном UIView.
2. Использовать API Core Graphics, например UIBezierPath, CGContext.
3. Для маски или формы — можно задать layer.mask или использовать CAShapeLayer.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2
Anonymous Quiz
15%
Integer
84%
Int
1%
Number
1%
Float
🤔6💊2
Anonymous Quiz
13%
Использование наследования
29%
Применение композиции и протоколов
52%
Расширение с помощью extension
7%
Использование delegation
hitTest не будет вызван или вернёт nil, если вью:
- Скрыта (isHidden = true)
- Прозрачна (alpha <= 0.01)
- Отключена от взаимодействия (isUserInteractionEnabled = false)
- Или точка касания не входит в её bounds (pointInside == false)
Также, если у superview не проходит проверка, все её сабвью будут проигнорированы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anonymous Quiz
91%
Рекурсия
2%
Итерация
6%
Замыкание
1%
Лямбда-выражение
Anonymous Quiz
6%
Array
43%
Set
10%
Dictionary
42%
OrderedSet
Это мощный способ построения гибких layout'ов без сложного наследования от UICollectionViewLayout. Используется иерархия: Item → Group → Section → Layout. Позволяет создать сложные, адаптивные, горизонтальные/вертикальные списки, карусели и пр.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
68%
reversed()
26%
reverse()
5%
backward()
1%
flip()
Anonymous Quiz
21%
private
75%
fileprivate
3%
internal
0%
open
Анимации — это плавные изменения свойств UIView (размер, позиция, прозрачность, цвет и т.д.). UIKit предоставляет простые API для создания анимаций через блоки с указанием продолжительности, задержек и эффектов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Anonymous Quiz
5%
struct
6%
class
66%
protocol
23%
extension
Anonymous Quiz
23%
SNMP
13%
FTP
41%
SOAP
23%
HTTP/2
💊10
Dependency Inversion — это принцип, согласно которому высокоуровневые модули не должны зависеть от низкоуровневых напрямую, а через абстракции. Dependency Injection — это механизм, с помощью которого зависимости передаются извне, реализуя этот принцип.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
23%
Использование XCTestExpectation
32%
Применение Async/Await в тестах
36%
Создание моков для сетевых вызовов
9%
Организация callback-функций в тестах
Anonymous Quiz
93%
async
7%
await
1%
defer
0%
dispatch
🤔1
В iOS такой термин не используется в явном виде. Возможно, имелся в виду vtable (таблица виртуальных функций) или symbol table. В контексте Swift она создаётся на этапе компиляции для классов с динамической диспетчеризацией.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊11🤔4
Anonymous Quiz
3%
Управление доступом к функциям
31%
Инкапсуляция и скрытие данных
42%
Добавление типобезопасности без реального хранения значений типа
23%
Определение типов, которые не могут быть созданы