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

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

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

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

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

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

21 ответов

79 просмотров

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. Там логика другая

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта