Часто используются приёмы: выделение метода, перемещение логики в отдельный класс или слой, замена условных операторов полиморфизмом, переименование для ясности, инверсия зависимости. Главная цель — улучшить читаемость, переиспользуемость и снизить связанность компонентов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
63%
Использование WebSockets для постоянного соединения с сервером
15%
Применение push-уведомлений для инициации обновлений
7%
Отслеживание изменений с помощью long-polling техники
15%
Разработка REST API с поддержкой long-running запросов
Anonymous Quiz
11%
Использование NotificationCenter
20%
Применение KVO (Key-Value Observing)
57%
Использование @Published вместе с SwiftUI
12%
Активация Data Binding
👍1
При верстке UITableViewCell через фреймы приходится вручную рассчитывать все размеры и положения элементов. Это быстрее по производительности, но требует точности и большой ответственности при адаптации под разные экраны.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
8%
Использование глобальных переменных для обмена данными
38%
Применение делегатов для передачи данных между модулями
32%
Создание единого Data Manager
22%
Использование Event-driven архитектуры
👍1
Anonymous Quiz
81%
Использование lazy var с замыканием
1%
Использование deferred var
8%
Применение static let
10%
Настройка через init()
👍1
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Anonymous Quiz
18%
Factory
6%
Adapter
72%
Dependency Injection
4%
Facade
💊2👍1
Anonymous Quiz
45%
Использование ограничений на типы
18%
Применение уточнения протокола
19%
Указание базового класса в определении протокола
18%
Определение протокола внутри класса
👍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
35%
Использование NSClassFromString и init
31%
Применение Class.forName и создание объекта
25%
Использование метапрограммирования и type(of:)
10%
Использование рефлексии и динамического создания объектов
Структуры копируются по механизму Copy-on-Write (CoW):
1. Если структура неизменна, копирования не происходит – все ссылки указывают на один объект.
2. Если структура изменяется, создается новая копия в памяти, а старая остается неизменной.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Anonymous Quiz
5%
Использование infix operator
20%
Расширения для String и Int
53%
Применение атрибутов @dynamicCallable и @dynamicMemberLookup
22%
Создание новых классов и структур
Anonymous Quiz
21%
Элемент будет добавлен снова
68%
Элемент будет проигнорирован
9%
Программа выбросит ошибку выполнения
1%
Множество будет очищено
👍1
Стеки между собой не взаимодействуют напрямую, потому что каждый из них принадлежит отдельному потоку и находится в своей изолированной памяти.
Однако потоки могут обмениваться данными через:
- Общую (разделяемую) память.
- Коллекции или переменные, защищённые механизмами синхронизации (например, DispatchQueue, NSLock, Atomic).
- Очереди (например, GCD или OperationQueue в Swift).
Сами стеки — независимы и не пересекаются между потоками.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
16%
static
14%
final
55%
class
15%
dynamic
👍1
Anonymous Quiz
35%
Использование associated objects
8%
Применение reflection
55%
Создание расширений класса
2%
Декларация приватных подклассов
👍1
Система не завершит приложение, если оно находится в активном состоянии, не потребляет слишком много ресурсов и не блокирует UI. Также при наличии background task или background fetch приложение может удерживаться живым ограниченное время в фоне.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
24%
Copying
11%
Clonable
55%
NSCopying
11%
Duplicatable
👍1
Anonymous Quiz
19%
Proxy
32%
Mediator
17%
Facade
31%
Observer
👍1
NSOperation — это объектно-ориентированный способ организации задач в iOS/macOS. Он позволяет управлять очередями задач с возможностью их приостановки, отмены, приоритезации и установления зависимостей между операциями. Работает в связке с NSOperationQueue. В отличие от GCD, даёт больше контроля и читаемости, особенно при работе со сложными асинхронными цепочками.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу Знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1