2013-08-21 4 views
0

Я создаю новые управляемые объекты в цикле, сохраняю их и хотел бы их устранить сразу же после их сохранения, чтобы уменьшить объем памяти RAM.Основные данные: как скомпилировать только что созданные управляемые объекты

Это, как я создаю управляемые объекты:

[objects enumerateObjectsUsingBlock:^(PFObject *obj, NSUInteger idx, BOOL *stop) { 
    @autoreleasepool { 
    ForexHistory *forexHistory = [NSEntityDescription insertNewObjectForEntityForName:localEntityName 
    inManagedObjectContext:backgroundContext]; 
    forexHistory.date = obj[@"date"]; 
    } 
}]; 
NSError *saveError = nil; 
[backgroundContext save:&saveError]; 

Для того, чтобы Fault объекты, я понимаю, что мне нужно использовать refreshObjects:mergeChanges.

Нужно ли обновлять все вставленные объекты, чтобы перебирать их и отправлять refreshObjects:mergeChanges:NO каждому из них или есть лучший способ?

+1

Сколько предметов существует? Вы прокомментировали? – Wain

ответ

1

Не знаю, правильно ли я понял ваш вопрос.

Вы можете уничтожить moc с помощью -reset. Все ссылки на объекты становятся недействительными. Вы должны их восстановить.

+0

Не сбросил бы moc-флеш все его объекты? Я просто хочу, чтобы конкретные объекты (например, «forexhistory» в моем примере кода). – AlexR

+0

Сбрасывает все объекты. –

+0

Вот почему я предпочел бы обновлять только определенные управляемые объекты вместо полного moc. То, как я сейчас это делаю, это хранить ссылки на вновь созданные управляемые объекты в наборе, сохраняя moc, а затем итерируя по набору, чтобы вызвать ошибки его объектов ('refresh: mergeChanges: NO'). Как вы относитесь к этому? – AlexR

Смежные вопросы