После освобождения объекта, на который указывает weak-ссылка, что произойдёт с этой ссылкой и почему?
База Hintsage
Программирование Swift
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Выберите подраздел
- 0 вопросов
Общие вопросы
Смешанные вопросы по Swift.
Открыть раздел - 50 вопросов
Swift Core
Типы, функции, структуры, классы и базовая семантика.
Открыть раздел - 49 вопросов
Optionals и система типов
Optionals, value/reference semantics, casting и pattern matching.
Открыть раздел - 50 вопросов
Протоколы и generics
Protocols, extensions, associated types и generic constraints.
Открыть раздел - 50 вопросов
Коллекции и функциональный стиль
Collections, closures, map/filter/reduce и sequences.
Открыть раздел - 50 вопросов
ARC и память
ARC, reference cycles, weak/unowned и время жизни объектов.
Открыть раздел - 50 вопросов
Конкурентность
async/await, actors, tasks и безопасность данных.
Открыть раздел - 2 вопроса
Обработка ошибок
throws, Result, defer и моделирование ошибок.
Открыть раздел
Практика
Вопросы: Программирование Swift
Почему Swift не позволяет напрямую сравнить два значения, объявленные как any Equatable, хотя каждый конкретный тип поддерживает Equatable?
Когда Swift вычисляет значение параметра по умолчанию при вызове функции?
Что означает lazy для хранимого свойства Swift при первом обращении?
Функция содержит несколько defer в одном и вложенных блоках: как Swift определяет порядок их выполнения при выходе из области видимости?
Разберите ситуацию: инициализатор структуры присваивает значения хранимым свойствам только в одной из ветвей условия. Какое требование Swift нарушено и почему компилятор отклоняет такой инициализатор?
При проверке двух экземпляров класса какой механизм позволяет установить, указывают ли ссылки на один и тот же объект, независимо от содержимого его свойств?
Что произойдёт с willSet и didSet хранимого свойства при присваивании ему начального значения внутри инициализатора?
Каким образом ARC определяет момент освобождения экземпляра класса, если ссылки на него исчезают в разном порядке?
Предскажите вывод программы и объясните, какое состояние разделяют копии замыкания:
func makeCounter() -> () -> Int {
var value = 0
return {
value += 1
return value
}
}
let first = makeCounter()
print(first())
let second = first
print(second())
print(first())
В практической ситуации вызов метода выполняется через необязательный экземпляр: каким станет результат, если экземпляр содержит значение или равен nil?
В чём смысл требования Swift инициализировать собственные хранимые свойства подкласса до вызова super.init?
При вызове переопределённого метода через ссылку на базовый класс какой реализацией завершится вызов?
В каком случае присваивание экземпляра структуры новой переменной не приводит к немедленной физической копии его данных?
Как Swift выбирает перегруженную функцию, если значение во время выполнения имеет более конкретный тип, чем статический тип переменной?
Представьте, что функции передали экземпляр класса: почему изменение его свойства видно снаружи, а переназначение локальной ссылки на другой экземпляр — нет?
Объясните механизм: зачем Swift помечает замыкание как escaping, если оно может быть вызвано после возврата функции?
Что именно происходит с аргументом при передаче в функцию через параметр inout?
Сравните последствия привязки экземпляра структуры и экземпляра класса к константе в Swift: что именно становится неизменяемым?
Разберите ошибку: метод структуры изменяет её свойство, но компилятор требует пометить метод как mutating. Что именно означает это требование?
Показано 281–300 из 301