Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
5%
Использование String для каждой операции
19%
Применение NSAttributedString
41%
Кэширование строк в static переменных
36%
Использование Substring для обработки частей строки
Anonymous Quiz
37%
weak
9%
strong
48%
unowned
5%
soft
💊3
Опционалы реализованы как enum с двумя состояниями: .none и .some(Value). В памяти они занимают больше места, чем просто значение, чтобы вместить флаг наличия данных.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
73%
== nil
10%
!= nil
13%
.isNil
4%
nilCheck
💊2
Anonymous Quiz
5%
Создание глобальных переменных
17%
Использование шаблона Singleton
78%
Внедрение зависимостей через конструктор (Dependency Injection)
0%
Прямое создание зависимостей внутри объектов
ARC вставляет вызовы retain и release во время компиляции, когда создаются или уничтожаются сильные ссылки. Это работает прозрачно и синхронно, без необходимости вручную управлять памятью.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
6%
Использование public модификатора
42%
Применение private модификатора
36%
Объявление методов как internal
15%
Ограничение доступа через fileprivate
Anonymous Quiz
31%
value
27%
capture
35%
weak
8%
unowned
Часто используются приёмы: выделение метода, перемещение логики в отдельный класс или слой, замена условных операторов полиморфизмом, переименование для ясности, инверсия зависимости. Главная цель — улучшить читаемость, переиспользуемость и снизить связанность компонентов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
59%
Использование WebSockets для постоянного соединения с сервером
16%
Применение push-уведомлений для инициации обновлений
8%
Отслеживание изменений с помощью long-polling техники
16%
Разработка REST API с поддержкой long-running запросов
Anonymous Quiz
8%
Использование NotificationCenter
23%
Применение KVO (Key-Value Observing)
57%
Использование @Published вместе с SwiftUI
11%
Активация Data Binding
👍1
При верстке UITableViewCell через фреймы приходится вручную рассчитывать все размеры и положения элементов. Это быстрее по производительности, но требует точности и большой ответственности при адаптации под разные экраны.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
8%
Использование глобальных переменных для обмена данными
40%
Применение делегатов для передачи данных между модулями
30%
Создание единого Data Manager
22%
Использование Event-driven архитектуры
👍1
Anonymous Quiz
77%
Использование lazy var с замыканием
2%
Использование deferred var
9%
Применение static let
13%
Настройка через init()
👍1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Anonymous Quiz
19%
Factory
4%
Adapter
73%
Dependency Injection
4%
Facade
💊2👍1
Anonymous Quiz
38%
Использование ограничений на типы
21%
Применение уточнения протокола
24%
Указание базового класса в определении протокола
17%
Определение протокола внутри класса
👍1
- frame — прямоугольник, описывающий позицию и размер вью относительно её супервью. Включает координаты и размеры.
- bounds — прямоугольник, описывающий внутреннюю систему координат самой вью. Его origin по умолчанию (0, 0).
Пример:
Если вьюшка смещена вправо и вниз, её frame.origin будет (x, y), но bounds.origin всё равно (0, 0) — пока ты явно не изменишь его (например, при скроллинге).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
29%
Использование NSClassFromString и init
25%
Применение Class.forName и создание объекта
33%
Использование метапрограммирования и type(of:)
13%
Использование рефлексии и динамического создания объектов