что экземпляры классов могут быть удалены? А для экземпляров value type?
Ответ: ARC ведет подсчет ссылок на каждый объект в куче, и в случае, если сильных вх ссылок на объект нет, то он удаляется из памяти.
А для value type срабатывает LIFO (при выходе из зоны видимости последовательно удаляются все значения, находящиеся в соответствующем фрейме (специальный блок, объединяющий несколько элементов одной области видимости))
Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект).
А цикл RunLoop он от чего до чего работает? Когда он (цикл) в теории завершается? Поясните, плиз, кто шарит
RunLoop это бесконечный цикл, который принимает и обрабатывает события. Если сказать просто, то он бесконечное количество раз выполняет твой код Если ранлуп остановить, то умрет приложение
Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект). А цикл RunLoop он от чего до чего работает? Когда он (цикл) в теории завершается?
тут имеется в виду не завершение всего цикла, а завершение итерации
Когда ты из оперативной памяти удалишь приложение, тогда завершается весь цикл. Представь бегуна, который бегает по кругу по стадиону, один круг, одна итерация. В конце каждого круга, проверяется надичие ссылок на обьект, если их нет, то он удалет, если еще есть то тащит за собой на следующий круг
а что такое итерация? от чего до чего она идет?
https://habr.com/ru/amp/publications/590319/
https://ru.wikipedia.org/wiki/Цикл_(программирование) наверное с вот этого стоит начать )
Ну и бред сивой кобылы тут написан. Где ты там такое вычитываешь? Срочно бросай.
Что именно бред? И объясни, плиз про ранлуп в части освобождения памяти
Я не хочу это расписывать, ибо ты почти каждый день сюда пишешь с подобными вопросами. Но все что тебе нужно сделать, это прочитать от корки до корки книжечку на сайте swift.org Прочитать ее обязательно в оригинале. Только после этого переходить к изучению iOS. Тебе не нужно задаваться такими вопросами сейчас. Все что нужно тебе знать есть в этой книжечке. А то ты мечешься от одного к другому, от одного бесполезного источника к другому, не зная зачем тебе это нужно.
слушайте, просто хочу разобраться в том, что читаю и не понимаю и не могу найти сразу ответа в сети. Вот на хабре, например, писали так: "Вместо того, чтобы мгновенно уменьшить счетчик удержания объекта, autorelease () добавляет объект в пул объектов, которые необходимо освободить когда-нибудь в будущем, но не сейчас. По умолчанию пул освобождает эти объекты в конце RunLoop'a выполняемого потока, чего более чем достаточно, чтобы покрыть все случаи. Или почти все" а ты пишешь "бред...ибо ты почти каждый день сюда пишешь с подобными вопросами." и т/п/ как-то грубовато, чтоли. Если это слишком глубокое - можно же проще это сказать и спокойно, а не эмоционировать.
По моему он тебе спокойно объяснил и дал верный совет. Не нужно учить то, в чем не видишь необходимости в данный момент
Это не грубо. Я тебе каждый раз пишу о том, что по моему скромному мнению тебе это сейчас не нужно, но ты каждый раз задаёшь очередной вопрос в котором ты не то что плаваешь, а не понимаешь основных принципов вообще. Изучай только основы и изучай их из проверенных источников.
"Ну и бред сивой кобылы тут написан" - это не грубо?
Камон чел, тебе советует человек, как лучше, а ты споришь. Серьезно?)
Руслан кстати это проверенный источник
да, е-мое, я не спорю - а охреневаю просто от того, что пытаюсь разобраться, а мне говорят - ты херней занимаешься, вот и все. Спросил что именно бред - "я не хочу"...ну не хочешь - не отвечай, я тебя что за руку что ли тяну. Спасибо, кончно, за напутствие, но четсно - неприятно было такие слова прочесть. ЭТО вроде как не бред : Каким образом Swift принимает решение о том, что экземпляры классов могут быть удалены? А для экземпляров value type? Ответ: ARC ведет подсчет ссылок на каждый объект в куче, и в случае, если сильных вх ссылок на объект нет, то он удаляется из памяти. А для value type срабатывает LIFO (при выходе из зоны видимости последовательно удаляются все значения, находящиеся в соответствующем фрейме (специальный блок, объединяющий несколько элементов одной области видимости)) Тут засомневался и решил спросить Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект). Ну и может как-то некорректно вопрос задал, но , блин, каммон - на все это сообщение писать, что "бред сивой кобылы"...
Выражение «бред сивой кобылы» нарушает рекомендации по общению в чате. Не надо так! Даже когда написано что-то действительно странное
Это, конечно, грубо, и так не надо. Но, по сути Роман дело говорит: вы правда упростите себе жизнь если просто подряд прочитаете базовое описание от Apple. Там логика другая
Тьфу, Т9
Обсуждают сегодня