172 похожих чатов

Добрый день! ARC Каким образом Swift принимает решение о том,

что экземпляры классов могут быть удалены? А для экземпляров value type?
Ответ: ARC ведет подсчет ссылок на каждый объект в куче, и в случае, если сильных вх ссылок на объект нет, то он удаляется из памяти.

А для value type срабатывает LIFO (при выходе из зоны видимости последовательно удаляются все значения, находящиеся в соответствующем фрейме (специальный блок, объединяющий несколько элементов одной области видимости))

Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект).

А цикл RunLoop он от чего до чего работает? Когда он (цикл) в теории завершается? Поясните, плиз, кто шарит

21 ответов

27 просмотров

RunLoop это бесконечный цикл, который принимает и обрабатывает события. Если сказать просто, то он бесконечное количество раз выполняет твой код Если ранлуп остановить, то умрет приложение

Roman-Vakulenko Автор вопроса
bobrov Dobretsov B
RunLoop это бесконечный цикл, который принимает и ...

Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект). А цикл RunLoop он от чего до чего работает? Когда он (цикл) в теории завершается?

Roman Vakulenko
Уточнение: Объект удаляется не сразу, а в конце ци...

тут имеется в виду не завершение всего цикла, а завершение итерации

Roman Vakulenko
Уточнение: Объект удаляется не сразу, а в конце ци...

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

Roman-Vakulenko Автор вопроса
Dmitriy Anokhin
тут имеется в виду не завершение всего цикла, а за...

а что такое итерация? от чего до чего она идет?

Roman Vakulenko
а что такое итерация? от чего до чего она идет?

https://ru.wikipedia.org/wiki/Цикл_(программирование) наверное с вот этого стоит начать )

Ну и бред сивой кобылы тут написан. Где ты там такое вычитываешь? Срочно бросай.

Roman-Vakulenko Автор вопроса
Руслан Лутфуллин
Ну и бред сивой кобылы тут написан. Где ты там так...

Что именно бред? И объясни, плиз про ранлуп в части освобождения памяти

Roman Vakulenko
Что именно бред? И объясни, плиз про ранлуп в част...

Я не хочу это расписывать, ибо ты почти каждый день сюда пишешь с подобными вопросами. Но все что тебе нужно сделать, это прочитать от корки до корки книжечку на сайте swift.org Прочитать ее обязательно в оригинале. Только после этого переходить к изучению iOS. Тебе не нужно задаваться такими вопросами сейчас. Все что нужно тебе знать есть в этой книжечке. А то ты мечешься от одного к другому, от одного бесполезного источника к другому, не зная зачем тебе это нужно.

Roman-Vakulenko Автор вопроса
Руслан Лутфуллин
Я не хочу это расписывать, ибо ты почти каждый ден...

слушайте, просто хочу разобраться в том, что читаю и не понимаю и не могу найти сразу ответа в сети. Вот на хабре, например, писали так: "Вместо того, чтобы мгновенно уменьшить счетчик удержания объекта, autorelease () добавляет объект в пул объектов, которые необходимо освободить когда-нибудь в будущем, но не сейчас. По умолчанию пул освобождает эти объекты в конце RunLoop'a выполняемого потока, чего более чем достаточно, чтобы покрыть все случаи. Или почти все" а ты пишешь "бред...ибо ты почти каждый день сюда пишешь с подобными вопросами." и т/п/ как-то грубовато, чтоли. Если это слишком глубокое - можно же проще это сказать и спокойно, а не эмоционировать.

Roman Vakulenko
слушайте, просто хочу разобраться в том, что читаю...

По моему он тебе спокойно объяснил и дал верный совет. Не нужно учить то, в чем не видишь необходимости в данный момент

Roman Vakulenko
слушайте, просто хочу разобраться в том, что читаю...

Это не грубо. Я тебе каждый раз пишу о том, что по моему скромному мнению тебе это сейчас не нужно, но ты каждый раз задаёшь очередной вопрос в котором ты не то что плаваешь, а не понимаешь основных принципов вообще. Изучай только основы и изучай их из проверенных источников.

Roman-Vakulenko Автор вопроса
Руслан Лутфуллин
Это не грубо. Я тебе каждый раз пишу о том, что по...

"Ну и бред сивой кобылы тут написан" - это не грубо?

Roman Vakulenko
"Ну и бред сивой кобылы тут написан" - это не гру...

Камон чел, тебе советует человек, как лучше, а ты споришь. Серьезно?)

Roman-Vakulenko Автор вопроса
Alexander Muller
Камон чел, тебе советует человек, как лучше, а ты ...

да, е-мое, я не спорю - а охреневаю просто от того, что пытаюсь разобраться, а мне говорят - ты херней занимаешься, вот и все. Спросил что именно бред - "я не хочу"...ну не хочешь - не отвечай, я тебя что за руку что ли тяну. Спасибо, кончно, за напутствие, но четсно - неприятно было такие слова прочесть. ЭТО вроде как не бред : Каким образом Swift принимает решение о том, что экземпляры классов могут быть удалены? А для экземпляров value type? Ответ: ARC ведет подсчет ссылок на каждый объект в куче, и в случае, если сильных вх ссылок на объект нет, то он удаляется из памяти. А для value type срабатывает LIFO (при выходе из зоны видимости последовательно удаляются все значения, находящиеся в соответствующем фрейме (специальный блок, объединяющий несколько элементов одной области видимости)) Тут засомневался и решил спросить Уточнение: Объект удаляется не сразу, а в конце цикла RunLoop (если в этом цикле пропадает последняя ссылка на объект). Ну и может как-то некорректно вопрос задал, но , блин, каммон - на все это сообщение писать, что "бред сивой кобылы"...

Руслан Лутфуллин
Ну и бред сивой кобылы тут написан. Где ты там так...

Выражение «бред сивой кобылы» нарушает рекомендации по общению в чате. Не надо так! Даже когда написано что-то действительно странное

Это, конечно, грубо, и так не надо. Но, по сути Роман дело говорит: вы правда упростите себе жизнь если просто подряд прочитаете базовое описание от Apple. Там логика другая

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта