Что такое inout и mutating в swift

Что такое inout и mutating в swift

В данной статье мы рассмотрим два ключевых слова, используемых в Swift, это inout и mutating. Inout позволяет модифицировать переданный в функцию аргумент и изменять его значение, в то время как mutating позволяет модифицировать значения свойств внутри структур или перечислений. В статье мы будем рассматривать примеры использования этих концептов и их взаимодействия для улучшения вашей кодовой … Продолжить чтение "Что такое inout и mutating в swift"

В данной статье мы рассмотрим два ключевых слова, используемых в Swift, это inout и mutating. Inout позволяет модифицировать переданный в функцию аргумент и изменять его значение, в то время как mutating позволяет модифицировать значения свойств внутри структур или перечислений. В статье мы будем рассматривать примеры использования этих концептов и их взаимодействия для улучшения вашей кодовой … Продолжить чтение «Что такое inout и mutating в swift»

Тестовые задания для Junior iOS разработчика

Тестовые задания для Junior iOS разработчика

Если вы начинающий iOS разработчик (Junior), то будьте готовы к тому, что вас попросят сделать тестовое задание. Обычно это написание мини приложения или игры (если ваше собеседование на соответствующую позицию). В данной статье собраны тестовые задания от разных компаний на позицию Junior iOS разработчик. Все задания находятся в открытом доступе и не являются сливом реальных … Продолжить чтение "Тестовые задания для Junior iOS разработчика"

Если вы начинающий iOS разработчик (Junior), то будьте готовы к тому, что вас попросят сделать тестовое задание. Обычно это написание мини приложения или игры (если ваше собеседование на соответствующую позицию). В данной статье собраны тестовые задания от разных компаний на позицию Junior iOS разработчик. Все задания находятся в открытом доступе и не являются сливом реальных … Продолжить чтение «Тестовые задания для Junior iOS разработчика»

Топ 20 вопросов на iOS собеседовании. Уровень Junior

Топ 20 вопросов на iOS собеседовании. Уровень Junior

Давайте рассмотрим самые популярные вопросы на собеседовании iOS, которые часто задаются разработчику Junior уровня. К каждому вопросу приведен подробный ответ, но будет плюсом читателю самостоятельно углубиться в каждую из тем, которые рассматриваются в статье. 1. Что такое Retain Cycle? Каким образом исправляется проблема Retain Cycle? Retain Cycle — распространенная проблема, связанная с управлением памяти, когда … Продолжить чтение "Топ 20 вопросов на iOS собеседовании. Уровень Junior"

Давайте рассмотрим самые популярные вопросы на собеседовании iOS, которые часто задаются разработчику Junior уровня. К каждому вопросу приведен подробный ответ, но будет плюсом читателю самостоятельно углубиться в каждую из тем, которые рассматриваются в статье. 1. Что такое Retain Cycle? Каким образом исправляется проблема Retain Cycle? Retain Cycle — распространенная проблема, связанная с управлением памяти, когда … Продолжить чтение «Топ 20 вопросов на iOS собеседовании. Уровень Junior»

Уровни доступа в Swift

Уровни доступа в Swift

Корректное использование уровней доступов в Swift способно скрыть детали реализации вашего кода от посторонних глаз от кода в других файлах и модулях. Очень часто именно с этой темы начинается собеседование iOS разработчика. В нашем распоряжении пять уровней доступа:  К сожалению, не помню ресурс-источник следующей картинки, но по ней очень легко понять тему контроля доступа: Open … Продолжить чтение "Уровни доступа в Swift"

Корректное использование уровней доступов в Swift способно скрыть детали реализации вашего кода от посторонних глаз от кода в других файлах и модулях. Очень часто именно с этой темы начинается собеседование iOS разработчика. В нашем распоряжении пять уровней доступа:  К сожалению, не помню ресурс-источник следующей картинки, но по ней очень легко понять тему контроля доступа: Open … Продолжить чтение «Уровни доступа в Swift»

deinit: как и где вызывается?

deinit: как и где вызывается?

deinit — деинициализация. Вызывается перед освобождением экземпляра класса. Деинициализаторы доступны только для классовых типов. Как правило, deinit не вызывается специально, что означает — не нужно вручную чистить память. Swift берет эту роль на себя, работает это при помощи автоматического подсчета ссылок (ARC). В ряде ситуаций, когда память нуждается в ручной очистке, вызывается деинициализатор, например, при … Продолжить чтение "deinit: как и где вызывается?"

deinit — деинициализация. Вызывается перед освобождением экземпляра класса. Деинициализаторы доступны только для классовых типов. Как правило, deinit не вызывается специально, что означает — не нужно вручную чистить память. Swift берет эту роль на себя, работает это при помощи автоматического подсчета ссылок (ARC). В ряде ситуаций, когда память нуждается в ручной очистке, вызывается деинициализатор, например, при … Продолжить чтение «deinit: как и где вызывается?»

Что такое ARC(Automatic Reference Counting)?

Что такое ARC(Automatic Reference Counting)?

Тема про управление памятью — излюбленная тема на собеседовании. В этой статье мы рассмотрим два подхода управления памятью: ARC и MRC. MRC — Manual Reference Counter (ручное управление счетчиком ссылок) Каждый объект содержит некий счетчик, отображающий количество объектов, которые на него ссылаются (ссылки). При равенстве счетчика нулю — объекты освобождаются из памяти. В ситуации, когда объект освобождается, но счетчик ссылок остался не равен нулю, … Продолжить чтение "Что такое ARC(Automatic Reference Counting)?"

Тема про управление памятью — излюбленная тема на собеседовании. В этой статье мы рассмотрим два подхода управления памятью: ARC и MRC. MRC — Manual Reference Counter (ручное управление счетчиком ссылок) Каждый объект содержит некий счетчик, отображающий количество объектов, которые на него ссылаются (ссылки). При равенстве счетчика нулю — объекты освобождаются из памяти. В ситуации, когда объект освобождается, но счетчик ссылок остался не равен нулю, … Продолжить чтение «Что такое ARC(Automatic Reference Counting)?»

Value Type и Reference Type или чем стек отличается от кучи?

Value Type и Reference Type или чем стек отличается от кучи?

Итак, разберемся что такое Value Type и Reference Type и чем стек отличается от кучи. В Swift есть две категории типов: Давайте разделим типы в Swift на две категории: Тип значения Ссылочный тип Int Функции Double Замыкания String Классы Array Dictionary Set Struct Enum Tuple Существует одно важное замечание — если экземпляр типа значения является … Продолжить чтение «Value Type и Reference Type или чем стек отличается от кучи?»

Retain Cycle

Retain Cycle

Одной из распространенных проблем, связанных с управлением памятью, является проблема Retain Cycle или цикл сильных ссылок. Retain Cycle — когда сущность A обладает сущностью B и наоборот. Утечка памяти происходит, когда содержимое остается в памяти даже после окончания его жизненного цикла. Это случается, когда два объекта имеют strong ссылки друг на друга. В подобном случае Swift просто … Продолжить чтение "Retain Cycle"

Одной из распространенных проблем, связанных с управлением памятью, является проблема Retain Cycle или цикл сильных ссылок. Retain Cycle — когда сущность A обладает сущностью B и наоборот. Утечка памяти происходит, когда содержимое остается в памяти даже после окончания его жизненного цикла. Это случается, когда два объекта имеют strong ссылки друг на друга. В подобном случае Swift просто … Продолжить чтение «Retain Cycle»