File *file = [[File alloc] init];
file = [self.fileList objectAtIndex:row];
Ну, здесь вы сначала выделяете новый File
, а затем отбрасываете указатель и, очевидно, получаете другой существующий объект из массива. Это тот, который вы отпустите, если позже позвоните release
. Тот, кого вы называете release
в конце, не тот, который вы выделили. Указатель на вновь выделенный объект теряется и, таким образом, утекает.
Вероятно, сбой, потому что self.fileList
содержит указатель на уже разрушенный объект после этого.
Может быть, вы хотели написать просто
File *file = [self.fileList objectAtIndex:row];