Все еще "несколько" новичка ... У меня есть NSMutableArray, который хранит имена файлов - когда пользователь щелкает UITableView, соответствующая выбранная ячейка передает определенное имя файла в массиве в MPMoviePlayerController для воспроизведения. Это работает, однако, если я выхожу из viewcontroller и возвращаюсь, будет работать только последнее видео, которое я проиграл, если я выберу любую другую запись в таблице, я получаю сбой с "EXEC_BAD_ACCESS". Итак, я предполагаю, что массив освобождается, когда исчезает контроллер представления
Вот код:
сначала: "NSMutableArray * filenameArray;" находится в .h файле
(void)viewDidLoad
{
[super viewDidLoad];
//filenameArray = [[[NSMutableArray alloc] initWithCapacity: 500] autorelease];
filenameArray = [[NSMutableArray alloc] initWithCapacity: 500];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
NSString *fullPath = [[NSString alloc] init];
fullPath = [[_importableVideoDocs objectAtIndex:indexPath.row] description];
NSLog(@"Full path is: %@", fullPath);
[filenameArray addObject:fullPath];
NSString *fileName = [fullPath lastPathComponent];
[fullPath release];
cell.textLabel.text = fileName;
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Tapping row %d", indexPath.row);
NSUInteger i = (indexPath.row);
NSString *test = [[filenameArray objectAtIndex:i] description];
//CRASH HAPPENS HERE IF VIEW CONTROLLER IS DISMISSED AND THEN APPEARS AGAIN
//when view disappears is filenameArray released? do I need to retain?
NSLog(@"%@", test);
moviePlayer = [[[CustomMoviePlayerViewController alloc] init] autorelease];
// Show the movie player as modal
[self presentModalViewController:moviePlayer animated:YES];
// Prep and play the movie
[moviePlayer readyPlayer:test];
}
Итак, мой вопрос для новичка: как мне сохранить это, чтобы остановить сбой EXC_BAD_ACCESS, когда я щелкаю по таблице, когда представление появляется во второй раз? или если я не на правильном пути к ответу, что мне нужно сделать, чтобы остановить этот сбой? Если бы кто-нибудь мог помочь мне с тем, как я мог бы решить это, это было бы очень признательно!
Спасибо!