Я анализировал свое приложение с утечками, и я заметил, что какой-то основной объект данных протекает, как может утечка NSManagedObject? Я думал, что это управляется операционной системой? Известны ли утечки в основных данных? Линия, которая Утечка говорит вызывает утечкаОсновные данные iOS Как он может протекать?
NSMutableArray *e=[NSMutableArray arrayWithArray:[[user videos] allObjects]];
//the line above^is pointed to by leaks as generating a leak
for(VideoEntity * v in e)
{
UploadThread *ut= [[UploadThread alloc] init];
[ut setVideoEntity:v];
[threads addObject:ut];
[ut release];
}
Где пользователь управляемый объект, который содержит VideoEntity как отношение ко многим, и я назначить VideoEntitys в некоторые потоки для работы на ... Утечке говорит VideoEntity является протечки.
У кого-нибудь есть вход?
Thats intersting points, хотя я не предполагал сохранять или освобождать управляемые объекты, но установщик для UploadThread объявляется как сохранение, чего, вероятно, не должно быть! Удержание вызова действительно имеет утечку (память не перераспределяется), хотя объект все еще управляется системой? – Daniel
Нет, вы определенно должны сохранить/освободить их. Они являются нормальными объектами obj-c, у них просто есть дополнительное управление, выполняемое контекстом. Если вы не сохраняете/не отпускаете объекты, они могут оставаться рядом или они могут исчезнуть из-под вас, в зависимости от того, решает ли контекст удерживать их или нет. Вы должны игнорировать контекст, думая об управлении памятью на них, и просто относитесь к ним, как к любому другому объекту модели. –