7 Aug 2026, 09:05 UTC123 views1 reactionsread 7 August 2026 🤔 Что нужно сделать, чтобы кастомная структура стала ключом в dictionary?
В Swift ключи в словаре (Dictionary) должны быть уникальными и сравниваться между собой. Поэтому, если вы хотите использовать*свою структуру в качестве ключа, она должна соответствовать протоколу Hashable.
🚩Что нужно?
Структура должна соответствовать Hashable
Должен быть реализован hash(into:) или использовать Equatable + Hashable автоматиче…
👍1
6 Aug 2026, 09:05 UTC162 viewsread 7 August 2026 🤔 Как устроено наследование?
Это ключевой механизм ООП, позволяющий классам наследовать свойства, методы и другие характеристики от других классов. Это позволяет создавать новые классы на основе существующих, расширяя их функциональность или изменяя её.
🚩Основы наследования
🟠Определение базового класса
Базовый класс определяет общие свойства и методы, которые могут быть унаследованы подклассами.
🟠Создание подклас…
5 Aug 2026, 16:11 UTC186 views3 reactionsread 7 August 2026 🤔 Как остановить подписку, когда пользователь не видит экран?
Подписку следует удалить в момент, когда экран становится невидимым:
- В UIKit: viewWillDisappear или viewDidDisappear.
- В SwiftUI: onDisappear.
Также важно:
- Для Combine использовать AnyCancellable и занулять его (cancellable = nil).
- В RxSwift — использовать disposeBag или вручную вызывать dispose().
Это предотвращает утечки памяти и ненужную раб…
👍2🔥1
5 Aug 2026, 09:05 UTC198 views2 reactionsread 7 August 2026 🤔 Чем опасна утечка памяти?
Утечка памяти (memory leak) – это ситуация, когда память остаётся выделенной, но больше не используется программой и не освобождается.
class Person {
var pet: Pet?
deinit { print("Person удалён") }
}
class Pet {
var owner: Person?
deinit { print("Pet удалён") }
}
var person: Person? = Person()
var pet: Pet? = Pet()
person?.pet = pet
pet?.owner = person
person = nil
pe…
👍1🤔1
4 Aug 2026, 09:05 UTC205 views1 reactionsread 7 August 2026 🤔 В чем проблема, если все переменные будут делаться в вик?
Если все переменные в коде сделать weak, объекты могут мгновенно удаляться из памяти, потому что никто не будет владеть ими (strong reference).
🚩Как работает `weak`?
- weak создает слабую ссылку – объект не увеличивает счетчик ссылок (retain count).
- Если нет других (strong) ссылок на объект, он удаляется (ARC освобождает память).
- weak переменные всегд…
👍1
3 Aug 2026, 09:05 UTC218 views1 reactionsread 7 August 2026 🤔 Что будет, если открыть несколько экранов и сделать dismiss последнего?
Когда вы открываете несколько экранов (UIViewController) в iOS, они обычно создают стек представлений (View Controller Stack). В зависимости от способа открытия экранов (модально или через навигационный стек), поведение dismiss будет разным.
🚩Модальное представление (`present`)
Если экраны открывались модально (present), то dismiss на послед…
👍1
2 Aug 2026, 09:05 UTC239 viewsread 7 August 2026 🤔 Перечислите все ленивые (lazy) контейнеры/вью?
В iOS существует несколько ленивых (lazy) контейнеров и вью, которые откладывают создание или загрузку элементов до момента их фактического использования.
🚩`lazy var` (ленивые свойства)
Обычное свойство инициализируется сразу, а lazy – только при первом вызове.
class Example {
lazy var expensiveObject: Data = {
print("Объект создан!")
return Data(…
1 Aug 2026, 09:05 UTC228 views5 reactionsread 7 August 2026 🤔 Расскажи жизненный цикл vue контроллера
В iOS жизненный цикл UIViewController определяет последовательность вызовов методов, происходящих во время создания, отображения, скрытия и уничтожения контроллера.
🚩Подробное объяснение стадий
🟠Создание (Initialization)
На этом этапе создаётся экземпляр UIViewController, но его view ещё не загружено.
- Можно переопределить init() или init(coder:), если контроллер создаётс…
💊5
31 Jul 2026, 16:11 UTC234 viewsread 7 August 2026 🤔 Как отличить Domain Driven Design в приложении?
Приложения с DDD фокусируются на логике предметной области и разделении модулей по бизнес-контекстам. Выделяются сущности, агрегаты, репозитории и фабрики. Основная цель — обеспечение точного моделирования бизнес-логики, независимого от технической реализации. Это позволяет создавать масштабируемую и легко поддерживаемую архитектуру.
Ставь 👍 если знал ответ, 🔥 если …
31 Jul 2026, 09:05 UTC261 views3 reactionsread 7 August 2026 🤔 Какие виды диспетчеризации существуют в свифт?
В Swift существует несколько видов диспетчеризации, которые определяют, как и когда вызываются методы или функции. Основные виды диспетчеризации включают статическую диспетчеризацию (static dispatch), диспетчеризацию по таблице виртуальных функций (vtable dispatch), диспетчеризацию по свидетелю (witness table dispatch) и динамическую диспетчеризацию (dynamic dispatch)…
🔥2👍1
30 Jul 2026, 09:05 UTC259 views1 reactionsread 7 August 2026 🤔 Может ли у UI View не быть layer'а и наоборот?
UIView всегда имеет CALayer, так как UIView — это обёртка над CALayer в UIKit.
CALayer может существовать без UIView, потому что это низкоуровневый элемент Core Animation, который не зависит от UIKit.
🚩`UIView` всегда содержит `CALayer`
Каждый UIView внутри себя содержит CALayer, который отвечает за отрисовку.
let view = UIView()
print(view.layer) // Всегда существу…
👍1
29 Jul 2026, 09:05 UTC267 views2 reactionsread 7 August 2026 🤔 Какие есть варианты обезопасить работу с историей images?
Обеспечение безопасности работы с историей изображений в iOS-приложениях может включать несколько уровней защиты:
🟠Контроль доступа к изображениям
- Используйте Privacy Settings (NSPhotoLibraryUsageDescription, NSCameraUsageDescription) для контроля доступа к фотоальбому.
- Для ограниченного доступа в iOS 14+ используйте PHPickerViewController.
let status …
👍2
Showing the 12 most recent of 20 posts we hold for @easy_swift. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.