У меня есть атрибут Core Data
, который является типом Binary Data
. Мы используем NSArchiver
для архивации NSArray
пользовательских объектов, а затем сохраним их в Core Data
.Основные данные Двоичные данные Тип загрузки не освобождает память
Затем, когда эти объекты используются, мы используем NSUnarchiver
, чтобы вернуть их обратно в NSArray
.
Проблема с этим связана с большой памятью, и я почему-то не могу ее вернуть. После разборки данных, проверки некоторых объектов, а затем установки NSArray
или NSData
объекта на ноль, эта память никогда не восстанавливается. Выполнение этого же действия для многих объектов Core Data
приводит к огромному использованию памяти, которое никогда не возвращается.
Есть ли причина, по которой это произойдет, или способ, которым я могу освободить эту память, которую я явно не использую?
Edit:
Я делал следующий без успеха:
[managedObjectContext refreshObject:myObject mergeChanges:NO];
Просто добавьте другую информацию. Вместо архивации NSArray в данные используются данные TRANSFORMABLE, доступные в coredata. Для примера http://stackoverflow.com/questions/8682324/insert-nsdictionary-into-coredata/25891673#25891673 –
Вы пытались выполнить эту задачу внутри блока '@ autoreleasepool'? – KrishnaCA
@ KrishnaCA Да, но это, похоже, не помогло. –