Общие вопросы
Смешанные вопросы по Swift.
Открыть разделБаза Hintsage
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Смешанные вопросы по Swift.
Открыть разделТипы, функции, структуры, классы и базовая семантика.
Открыть разделOptionals, value/reference semantics, casting и pattern matching.
Открыть разделProtocols, extensions, associated types и generic constraints.
Открыть разделCollections, closures, map/filter/reduce и sequences.
Открыть разделARC, reference cycles, weak/unowned и время жизни объектов.
Открыть разделasync/await, actors, tasks и безопасность данных.
Открыть разделthrows, Result, defer и моделирование ошибок.
Открыть разделПрактика
Что произойдёт, если два потока одновременно вызывают next() у одного итератора Sequence?
При возврате экземпляра класса из функции что определяет его время жизни у вызывающего кода: область видимости результата или последнее использование?
Проверьте, доживёт ли локальный объект до выполнения defer, если функция уже выполнила return.
Считается ли weak-ссылка на экземпляр второй сильной ссылкой при проверке isKnownUniquelyReferenced?
Если свойство объекта хранит замыкание с захваченным unowned self, образуется ли retain cycle?
Гарантирует ли Swift вызов deinit для объектов, которые остаются живыми в момент завершения процесса?
При вызове функции с параметром borrowing или consuming для экземпляра класса какой вариант передаёт функции владение ссылкой, а какой лишь временно заимствует её?
При копировании замыкания с сильным захватом объекта что удерживает объект после обнуления исходной ссылки?
Почему замена weak на unowned может уменьшить накладные расходы, но не устраняет риск обращения к уже уничтоженному объекту?
Разрешено ли объявить weak-свойство типа замыкания в Swift, чтобы разорвать цикл с его владельцем?
Какую проблему предотвращает запрет Swift на захват self escaping-замыканием до завершения инициализации класса?
Насколько надёжно по трассировке retain/release определять точный момент уничтожения объекта под управлением ARC?
Сценарий: массив — единственный владелец экземпляра класса и содержит его дважды. Может ли удаление одного элемента сразу вызвать deinit?
Удерживает ли Optional, содержащий экземпляр класса, этот экземпляр сильной ссылкой?
При копировании структуры с weak-свойством сколько независимых слабых ссылок получает копия?
Освобождает ли ARC память, выделенную через UnsafeMutableRawPointer.allocate?
Представьте, что enum с associated value класса передан в функцию. Какая ссылка удерживает экземпляр во время обработки case?
При копировании значения с copy-on-write-хранилищем что происходит с его общим буфером до первой мутации?
Разбор последствий: способна ли deinit продлить жизнь экземпляра, сохранив self в сильной ссылке?
Может ли ARC разместить экземпляр класса в стеке, если он не покидает функцию?
Показано 501–520 из 651