Можно ли вручную удалить содержимое объекта из памяти?Как я могу вручную обнулить память?
В частности, я имею дело с NSData
. Я пробовал использовать data.length = 0
и data.setData(NSData)
.
Я знаю, что ARC
войдет и очистится после того, как он выходит из сферы действия, к которому он принадлежит, но можно ли вручную принудительно выполнить этот процесс, когда захочу?
Так что даже после взятия объекта и перезаписи содержимого самого '.setdata (nsdata())' это не гарантирует, что фактическая память будет перезаписана новым значением? Или вы имеете в виду, когда вы разрешаете объекту полностью? –
Я не знаю, какой метод 'setdata' вы говорите, но, скорее всего, он обновляет внутреннюю переменную экземпляра получателя, которая содержит ссылку на NSData. Установка нового значения для него приведет к тому, что ARC освободит старый объект NSData, с которым он ссылался (если ничего не ссылается на этот объект NSData), но нет никакой гарантии, что он будет обнулен. – Alexander
NSMutableData SetData() - https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSMutableData_Class/#//apple_ref/occ/instm/NSMutableData/setData: –