Как стать автором
Обновить

Комментарии 9

НЛО прилетело и опубликовало эту надпись здесь

Вот тут из 8 вхождений 7 -- это manual reference counting, и только одно - manual retain release. Правда, в этой же статье есть ссылка и сюда. И вот тут уже дается определение MRR, но тоже всего в нескольких упоминаниях. Имхо, не стоит так категорично. Кажется, что даже сами Apple вполне себе используют аббревиатуру MRC. Да и в русском сообществе она очень популярна. Ну, и так ли важно, как называется технология, или все же важнее понимают ли разработчики, как она работает?

В копилку каверзных вопросов для собеседований. Добавьте в ваш граф ретейн цикла еще один объект, и 9 из 10 собеседуемых его уже не найдут.

И еще один. Какую из ссылок в графе ретейн цикла по теории можно сделать слабой для устранения проблемы? А какую нужно, чтобы не создать себе других проблем? Как определять ту единственную связь, которую в графе безопасно ослаблять?

Многие на таком вопросе сыпятся:
- Сделай retain cycle из одного объекта.

class UniqApple {

    static var shared = UniqApple()

    private init() { print("initialized") }

    deinit { print("deinitialized") }

}

var d: UniqApple? = UniqApple.shared

d = nil

Стек. Статическое выделение памяти, которое происходит только во время компиляции.

А что тут имеется ввиду под "во время компиляции"? Как можно выделить память во время компиляции? И где она тогда выделяется. Какого рода "компиляция" имеется ввиду? Память в стеке ведь выделяется при создании очередного stack frame-а, т.е. в runtime.


upd. или имеется ввиду что на весь стек резервируется память при запуске приложения и больше её размер не меняется? ну тогда тоже непонятно, причём тут компиляция

В стеке хранятся не только структуры и перечисления, но и кортежи (tuples)

В куче же помимо классов хранятся замыкания и функции.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий