Публикации по теме 'retain-cycle'


3 Что нужно знать об утечке памяти или цикле сохранения
Переменные, замыкания и протоколы Утечка памяти - кошмар для разработчиков, пока вы не поймете, как работает управление памятью в iOS. Если вы ищете детализацию ARC, это не то место. Здесь в первую очередь следует учитывать случаи, когда ARC не может освободить память. Что такое цикл удержания? Объяснение одной строкой: если объект, инициализированный в вашем коде, не может быть освобожден сам по себе по каким-либо причинам, тогда начинается цикл хранения. Представьте, что Боб и..

Вопросы по теме 'retain-cycle'

Означает ли отсутствие предупреждения, которое может привести к сохранению цикла, сильный эталонный цикл не будет создан?
В соответствии с переходом к примечаниям к выпуску ARC, при ссылке на себя внутри блока следует использовать слабые ссылки, чтобы избежать сильного цикла ссылки/сохранения: MyViewController *myController = [[MyViewController alloc] init…]; // ......
148 просмотров
schedule 08.07.2023

Запросы таблицы лидеров, вложенные блоки и циклы сохранения
Я разработал класс отображения таблицы лидеров для своей игры для iPhone. Класс имеет следующий метод экземпляра. -(void)displayScoresWithRequest:(CBLeaderboard*)request completionHandler:(void(^)())completionHandler { if (request_ != nil)...
215 просмотров

[Не сохранен тип]: сообщение отправлено в освобожденный экземпляр, цель c
Я настраиваю свой вид с помощью градиента и добавляю к нему ulabel, делая следующее: @implementation ECertificateViewController - (void)viewDidLoad { [super viewDidLoad]; CustomViewBackGround *bgView = [[CustomViewBackGround...
942 просмотров
schedule 03.08.2023

Блоки блокируют мой обзор
предположим, я делаю это: MyClass *vista = [[MyClass alloc] initWithFrame:CGRectZero]; vista.onFinish = ^{ CGRect rect = vista.bounds; // bla bla bla }; тогда xcode наградит меня этой ошибкой: сильный захват перспективы в этом блоке,...
57 просмотров

Обращение к слабому я внутри вложенного блока
Предположим, я уже создал слабую личность, используя __weak typeof(self) weakSelf = self; [self doABlockOperation:^{ ... }]; Внутри этого блока, если я вложу другой блок: [weakSelf doAnotherBlockOperation:^{ [weakSelf...
36821 просмотров

«Свойство сохраненного блока не копирует блок — вместо этого используйте атрибут копирования
У меня большой опыт работы с JavaScript, и я как можно лучше перехожу на Objective-C. Естественно, я всегда хватаюсь за возможность использовать замыкающие функции в моем исходном коде, например: @property (nonatomic, retain) void...
921 просмотров

Понимание выходных данных инструментов Xcode 4.6 Allocations: Retain Cycle Detection
Я думаю, что у меня цикл удержания. Это происходит, когда я нажимаю и закрываю VC. Каждый раз, когда я нажимаю и отпускаю, появляются похожие объекты. Может ли кто-нибудь помочь мне понять этот вывод профилировщика. (фото выше) Вопрос 1...
152 просмотров

Глубокое понимание цикла сохранения
Допустим, у нас есть три объекта: бабушка и дедушка, родитель и ребенок. Прадедушка оставляет за собой родителя, родитель сохраняет ребенка, а ребенок сохраняет родителя. Бабушка и дедушка отпускают родителя. Что будет в этом случае?
40861 просмотров

бесхозные vs. слабые. Почему мы должны отдавать предпочтение бесхозным?
Как Apple сказала в «Swift Programming Language», кажется, мы должны предпочесть unowned , а не weak , когда это возможно: Если захваченная ссылка никогда не станет нулевой, ее всегда следует захватывать как бесхозную ссылку, а не как слабую....
2250 просмотров
schedule 23.11.2022

Не вызовет ли это цикл удержания? (obj-c, пример кода)
SomeViewController *newController = [SomeViewController new]; [newController setSomeBlock:^{ [self.someProperty doSomething]; }]; [self presentViewController:newController animated:YES completion:nil]; SomeViewController имеет someBlock в...
207 просмотров

Почему помещение себя в блоки GCD вызовет утечку памяти?
Я прочитал замечательную статью, написанную benzado о том, что использование блока приведет к утечке памяти, если у нас есть переменная класса, сохраняющая сам блок, а блок сохраняет «я», что вызывает цикл сохранения. Как мне избежать захвата себя...
1053 просмотров

Печать сильных владельцев объекта, Swift
В моем приложении iOS есть цикл сохранения. Для конкретного viewController, застрявшего в цикле сохранения, я попытался сделать все делегаты слабыми. Но когда я имитирую предупреждение памяти из симулятора, вызывается didRecieveMemoryWarning, но...
3564 просмотров
schedule 21.04.2023

Путаница в отношении того, как использовать списки захвата, чтобы избежать цикла ссылок
Мой пользовательский подкласс UIViewController имеет сохраненное свойство закрытия. Сигнатура закрытия определяется как принимающая один аргумент того же типа класса: class MyViewController { var completionHandler :...
70 просмотров
schedule 07.07.2022

Должна ли асинхронная функция Swift сохранять сильную ссылку на объект?
Мы реализовали расширение для NSData, которое асинхронно сохраняет данные в URL. Вот краткая версия функции. extension NSData { func writeToURL1(url:NSURL, completion: () -> Void) {...
1014 просмотров
schedule 22.05.2023

Сохраняют ли массивы Swift свои элементы?
Я переношу одну часть своей структуры Objective-C, где у меня был собственный класс MyNotificationCenter для целей наблюдения. У класса было свойство типа NSArray со всеми наблюдаемыми, которые заинтересованы в уведомлениях. В target-c массив...
950 просмотров
schedule 01.12.2022

Возможная утечка памяти в коде
В приложении, над которым я работаю, требуется периодически запрашивать данные устройства, такие как ускорение, гироскоп и движение. Я написал следующий класс для обработки всех связанных задач (я также использую стороннюю библиотеку...
310 просмотров
schedule 05.07.2022

Как деинитировать класс CollectionView
В моем проекте есть 2 ViewController'а (ViewController и DetailViewController). На первом есть табличный вид в UIScrollview. На втором — кнопки в UICollectionView с изображениями и ссылками. Когда я много раз всплываю в DetailViewController,...
1052 просмотров
schedule 28.12.2022

Путаница по поводу слабого делегата в Swift
Допустим, у нас есть протокол protocol MyProtocol { fun someFunc() } class AClass { var delegate: MyProtocol? } AClass не заботится о том, является ли делегат классом или структурой. Что я хочу, так это то, что иногда делегат может...
1854 просмотров
schedule 02.08.2023

Быстрое закрытие, вызывающее сильный цикл удержания с самим собой
Я просто хочу знать, правильно ли я понимаю это или нет. Таким образом, согласно документам Apple, когда вы создаете закрытие как свойство экземпляра класса, и это закрытие ссылается на себя (класс, который создал свойство закрытия), это может...
5411 просмотров
schedule 13.09.2023

Как исследовать утечки памяти в ios?
Я создал простой поток для проверки памяти в приложении ios. У меня есть два контроллера представления в стеке навигации. Я показываю предупреждение в первом контроллере представления, чтобы пользователь мог перейти к следующему. Ниже приведен код,...
1362 просмотров