Публикации по теме '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 просмотров
schedule
11.11.2022
[Не сохранен тип]: сообщение отправлено в освобожденный экземпляр, цель 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 просмотров
schedule
25.04.2022
Обращение к слабому я внутри вложенного блока
Предположим, я уже создал слабую личность, используя
__weak typeof(self) weakSelf = self;
[self doABlockOperation:^{
...
}];
Внутри этого блока, если я вложу другой блок:
[weakSelf doAnotherBlockOperation:^{
[weakSelf...
36821 просмотров
schedule
02.04.2022
«Свойство сохраненного блока не копирует блок — вместо этого используйте атрибут копирования
У меня большой опыт работы с JavaScript, и я как можно лучше перехожу на Objective-C. Естественно, я всегда хватаюсь за возможность использовать замыкающие функции в моем исходном коде, например:
@property (nonatomic, retain) void...
921 просмотров
schedule
14.11.2022
Понимание выходных данных инструментов Xcode 4.6 Allocations: Retain Cycle Detection
Я думаю, что у меня цикл удержания. Это происходит, когда я нажимаю и закрываю VC. Каждый раз, когда я нажимаю и отпускаю, появляются похожие объекты.
Может ли кто-нибудь помочь мне понять этот вывод профилировщика. (фото выше)
Вопрос 1...
152 просмотров
schedule
11.01.2023
Глубокое понимание цикла сохранения
Допустим, у нас есть три объекта: бабушка и дедушка, родитель и ребенок. Прадедушка оставляет за собой родителя, родитель сохраняет ребенка, а ребенок сохраняет родителя. Бабушка и дедушка отпускают родителя.
Что будет в этом случае?
40861 просмотров
schedule
28.04.2023
бесхозные 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 просмотров
schedule
04.02.2023
Почему помещение себя в блоки GCD вызовет утечку памяти?
Я прочитал замечательную статью, написанную benzado о том, что использование блока приведет к утечке памяти, если у нас есть переменная класса, сохраняющая сам блок, а блок сохраняет «я», что вызывает цикл сохранения.
Как мне избежать захвата себя...
1053 просмотров
schedule
25.03.2022
Печать сильных владельцев объекта, 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 просмотров
schedule
13.04.2022