Я понимаю, что подобный вопрос был опубликован ранее, но я действительно не могу найти решение, которое работает для меня. У меня есть класс MoviePlayer, который хранит ивар MPMoviePlayerController, и у меня есть следующий метод в классе:
-(void)playMovie:(NSString *)movieName
{
NSURL *movieURL;
NSBundle *bundle = [NSBundle mainBundle];
if(bundle)
{
NSString *moviePath = [bundle pathForResource:movieName ofType:@"m4v"];
if(moviePath)
{
movieURL = [NSURL fileURLWithPath:moviePath];
}
}
MPMovieController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
if(mp)
{
self.moviePlayer = mp;
[mp release];
[self.moviePlayer play];
}
[movieURL release];
}
При вызове я воспроизводлю фильм один раз, когда фильм воспроизводится нормально, но когда он вызывается снова надругой (или тот же) файл фильма Я получаю следующий стек ошибок:
_class_isInitialized
_class_lookupMethodAndLoadCache objc_msgSend
-[MoviePlayer setMoviePlayer:]
-[MoviePlayer playMovie:]
Я не уверен, как это исправить! Я предполагал, что когда вызывается self.moviePlayer = mp, то текущий moviePlayer освобождается, а новый добавляется? Для свойства установлено значение (неатомное, сохранение). Может кто-нибудь помочь, пожалуйста?
Спасибо