Описание тега retain-cycle
Цикл сохранения - это ситуация в управлении памятью с подсчетом ссылок, когда два (или иногда более) объекта имеют сильные ссылки друг на друга. Обычно объекты уничтожаются, когда их счетчик ссылок достигает нуля, и в это время освобождаются содержащиеся в них ссылки. В цикле каждый объект поддерживает жизнь другого, и ни один из них не будет уничтожен, если цикл не будет нарушен намеренно.
2
ответа
Как разрешить сохранение цикла в блоке для void*?
У меня есть статическая библиотека C++, которая связана в моем приложении для iOS. У меня есть void* для доступа к некоторым действиям, предоставляемым библиотекой, из моего кода. Проблема в том, что я активировал ARC в своем проекте, и он кричит, ч…
16 авг '12 в 09:01
2
ответа
Вызывает ли передача функции, принадлежащей self, цикл сохранения, когда он не находится в замыкании?
Если вам нужно ссылку self внутри замыкания, это хорошая практика, чтобы передать его как weak или же unowned чтобы предотвратить сохранение цикла. Если я передам функцию, которая принадлежит self напрямую, это приведет к сохранению цикла? Или это н…
07 дек '15 в 15:58
2
ответа
Почему рекомендуется использовать _weak ссылку с делегатами
Привет всем, кто-нибудь уточнит мне, почему рекомендуется использовать _слабую ссылку для делегатов, а не строгую ссылку? хотя мы также можем использовать строгую ссылку для делегатов. Кто-то, пожалуйста, расскажет мне с лучшим и описательным пример…
21 июн '14 в 12:16
1
ответ
Как использовать сильные и слабые с одноуровневыми объектами (каждый из которых может быть родительским) в Objective-C ARC?
У меня есть два объекта Objective-C, которые так или иначе связаны друг с другом. Вы можете думать об этом как о двусторонних отношениях. С ARC я понимаю, что родитель должен содержать строгую ссылку на свой дочерний объект, в то время как дочерний …
10 авг '13 в 02:44
1
ответ
Разве плохо установить два представления в SplitView для хранения ссылки друг на друга?
В настоящее время я пишу программу RSS, в которой представления моего splitViewController должны общаться друг с другом. Оба они в настоящее время содержат собственный экземпляр, объявленный в делегате приложения, как указано ниже. Я хочу знать, есл…
20 ноя '12 в 23:36
0
ответов
Должно ли само себя быть захвачено как сильное в завершение presentViewController?
При написании обработчика закрытия presentViewController completion должна ли ссылка на себя быть сильной (по умолчанию), слабой или не известной? [self presentViewController:actionSheet animated:YES completion:^{ [self.tableView deselectRowAtIndexP…
21 июн '16 в 12:13
1
ответ
Почему это свойство viewController не предотвращает освобождение объекта?
Пожалуйста, рассмотрите следующий код: class Module { let viewController = ExampleViewControler() deinit { print("deinit") } } class ExampleViewControler: UIViewController {} @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {…
13 мар '17 в 08:12
2
ответа
Сильный захват "себя" в этом блоке может привести к сохранению цикла
У меня есть запрос с блоком. Но компилятор выдает предупреждение "Сильный захват" себя "в этом блоке может привести к сохранению цикла" __weak typeof(self) weakSelf = self; [generalInstaImage setImageWithURLRequest:[NSURLRequest requestWithURL:[NSUR…
09 июн '13 в 13:14
2
ответа
Как прервать многопоточность Core Data, чтобы сохранить циклы при объединении изменений?
В моем приложении я использую CoreData для хранения и отображения данных с помощью NSFetchedResultsController. Я следовал инструкциям Raywenderlich, чтобы сделать это, и в нем много кода - но в целом он работает должным образом - опубликую его части…
22 янв '14 в 16:36
3
ответа
Освободить контроллеры представления в контроллере навигации, которые имеют ссылку на себя
Скажем, у меня есть контроллеры представления A, B, C, D & E, все они встроены в контроллер навигации. В контроллере представления B у меня есть собственный объект UIImageView. В C у меня есть пользовательский объект UITextfield. Оба пользовательски…
05 янв '18 в 09:23
1
ответ
Сохранить цикл с AFNetworking
Я пишу галерею с изображениями, которые могут быть загружены по URL с AFNetworking, В Init метод ImageView объект я вызываю функцию, которая отправляет запрос. Вот: - (void) loadWithUrl:(NSURL *)url { NSMutableURLRequest *request = [NSMutableURLRequ…
25 сен '13 в 12:16
1
ответ
Swift Memory Management: хранение функций в var
Я ищу лучшую практику для хранения функций как переменных в других объектах. В частности, я стараюсь избегать сохранения циклов, присущих захвату self в функции. Исходя из target-c и блоков, я обычно делал бы что-то вроде этого: __weak id _self = se…
23 янв '15 в 14:31
1
ответ
Почему сохраняется цикл утечки памяти?
Я немного запутался в сохранении цикла. Как показывают рисунки, это цикл сохранения. Мое мнение таково: когда выйдет из области видимости,test0 выпустит,obj_ отпустит, поэтому счетчик ссылок объектов A и B будет один Кроме того, когда это происходит…
19 мар '16 в 02:24
2
ответа
Вызывает ли вызов метода внутри блока, который вызывает другой метод, ссылающийся на себя, цикл сохранения?
Можно doFirst вызвать цикл сохранения здесь? @interface Example : NSObject @property (nonatomic, strong) void (^block)(); @end @implementation Example - (void)doFirst { __weak id weakSelf = self; self.block = ^ { [weakSelf doSecond]; }; self.block()…
20 фев '14 в 13:32
1
ответ
iOS - Слабый var все еще может вызвать сохранение цикла?
Вот мой настоящий код: @IBOutlet weak var contentTextView: SmartTextView! { didSet { self.contentTextView.onDidBeginEditing = { $0.layer.borderColor = Util.green.CGColor } self.contentTextView.onDidEndEditing = { $0.layer.borderColor = Util.gray.CGC…
13 сен '15 в 16:06
1
ответ
Swift: сохранить цикл с помощью NSOperation
В моем приложении я использую класс загрузчика изображений для загрузки изображений из Интернета для просмотра коллекции. Класс отслеживает операции загрузки и отменяет их, когда ячейки для изображений больше не видны в представлении коллекции. Эта …
30 дек '15 в 11:09
1
ответ
Быстрые замыкания, вызывающие сильное удержание цикла с самим собой
Я просто хочу знать, правильно ли я понимаю это или нет. Таким образом, в соответствии с документами Apple, когда вы создаете замыкание как свойство экземпляра класса, и это замыкание ссылается на себя (класс, создавший свойство замыкания), это прив…
09 май '18 в 20:11
2
ответа
Должна ли асинхронная функция swift сохранять сильную ссылку на объект?
Мы реализовали и расширили NSData, который асинхронно сохраняет данные в URL. Вот краткая версия функции. extension NSData { func writeToURL1(url:NSURL, completion: () -> Void) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DE…
13 сен '16 в 00:18
1
ответ
Objective-C сохранить цикл между 2 объектами
Вот код: TestA *ta = [[TestA alloc] init]; TestB *tb = [[TestB alloc] init]; ta.b = tb; tb.a = ta; Я пытался установить ta = nil или же tb = nil, Не сработало но ta.b = nil работал. Зачем?
31 мар '18 в 03:53
11
ответов
Как правильно справляться со слабым Я в стремительных блоках с помощью аргументов
В моем TextViewTableViewCellУ меня есть переменная для отслеживания блока и метод конфигурации, в котором блок передается и назначается.Вот мой TextViewTableViewCell учебный класс: // // TextViewTableViewCell.swift // import UIKit class TextViewTabl…
28 июн '14 в 15:33