2012-04-10 2 views
0

Я создаю одно приложение для iPad, в котором хочу открыть медиаплеер для воспроизведения видео. Для этого я создаю одну кнопку в методе ViewDidLoad(). Бой мой код.Видеопроигрыватель дает ошибку (EXC_BAD_ACCESS)

- (void)viewDidLoad 
{ 
    [super viewDidLoad] 
    self.view.backgroundColor = [[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"1.png"]] autorelease]; 

    m_btn2000 = [[UIButton buttonWithType:UIButtonTypeCustom] autorelease]; 
    m_btn2000.frame = CGRectMake(180, 330, 130, 200); 
    [m_btn2000 setImage:[UIImage imageNamed:@"2.png"] forState:UIControlStateNormal]; 
    m_btn2000.clipsToBounds = YES; 
    [m_btn2000 addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:m_btn2000]; 
} 

Беллоу моя кнопка нажата код метода:

- (void)btnClicked:(id)sender 
{ 
    NSString *filePath1 = [[NSBundle mainBundle] pathForResource:@"test_video" ofType:@"m4v"]; 
    NSURL *fileURL = [NSURL fileURLWithPath:filePath1]; 
    m_moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
    m_moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
    [m_moviePlayer.view setFrame:CGRectMake(0, 0, 1026, 748)]; 
    [self.view addSubview:m_moviePlayer.view]; 
    [m_moviePlayer play]; 
} 

, когда я собираюсь нажать на кнопку это дает мне EXC_BAD_ACCESS ошибку. Но я замечаю одно, что, когда я ставлю над всем кодом, который в нажатой кнопке метод помещает в метод ViewDidLoad(), он воспроизводит видео в плеере надлежащим образом.

ответ

1

Причина: вы создаете кнопку с + (заводским методом), и вы отправляете сообщение autorelease.

вам нужно изменить эту строку из:
m_btn2000 = [[UIButton buttonWithType:UIButtonTypeCustom] autorelease];

в

m_btn2000 = [UIButton buttonWithType:UIButtonTypeCustom]; 
+0

лучше один ... решена. Можете ли вы, пожалуйста, дать краткую информацию об этом? –

+0

+1, это (объект кнопки) уже является 'autorelease'd методом фабрики. – Ilanchezhian

+0

ладно ... спасибо .. –

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