В моем корневом контроллере представления, в моем методе didReceiveMemoryWarning, я прохожу пару структур данных (которые я храню в глобальном синглтоне под названием DataManager) и угробляю самые тяжелые вещи, которые у меня есть - одно или, может быть, два изображения, связанные возможно двадцать или тридцать или более записей данных.
Прямо сейчас я прохожу и устанавливаю их на ноль. Я также устанавливаю себе логический флаг, чтобы различные контроллеры представления, которым нужны эти данные, могли легко знать, чтобы перезагрузить. Thusly:
DataManager *data = [DataManager sharedDataManager];
for (Event *event in data.eventList) {
event.image = nil;
event.thumbnail = nil;
}
for (WondrMark *mark in data.wondrMarks) {
mark.image = nil;
}
[DataManager sharedDataManager].cleanedMemory = YES;
Сегодня я думаю, хотя ... и я не уверен, что вся эта выделенная память действительно освобождается, когда я делаю это. Должны ли я вместо этого release
эти изображения и, возможно, поразить их новыми alloc
и init
, когда они понадобятся мне позже?