РЕДАКТИРОВАТЬ : Сразу после публикации ответа ниже я заметил, что всякий раз, когда контроллер перераспределяется, ошибки возвращаются, когда старый контроллер автоматически освобождается, даже если я не настроил обработчики уведомлений.себя.Поскольку сбои происходят из кода внутри платформы MP, я бы сказал, что это, похоже, ошибка ОС.
Я столкнулся с той же проблемой в проекте iOS 5 на основе раскадровки с использованием ARC.Проблема заключается в использовании временной переменной в стеке для ссылки на контроллер фильма - в моем случае я предполагал взаимодействие с ARC, но оно может быть более фундаментальным, чем это.В любом случае это выглядит так, как будто что-то освобождается / теряется слишком рано (например, когда возникает ошибка воспроизведения), и журнал заполняется описанным вами видом вывода.
Хранение ссылки на контроллер видео в свойствеопределено в классе владения, решило это в моем случае;то есть:
@interface MyClass
@property ( strong, nonatomic ) MPMoviePlayerViewController * movieController;
@end
@@implementation MyClass
@synthesize movieController = _movieController;
// ...then later, this:
//
// MPMoviePlayerController *moviePlayerController = [...];
//
// ...becomes:
self.movieController = [...];
Если вы используете синтезированные средства доступа для свойства, то при использовании ручного или автоматического подсчета ссылок метод сгенерированного сеттера должен правильно освободить старый контроллер фильма (если он есть) передустановка нового.
В качестве сноски, если вы (скажем) имеете дело со значениемloc (unleference) (set-to-nil) вручную в обработчике уведомлений MPMoviePlayerPlaybackDidFinishNotification
, вы, вероятно, заметите, чтоошибки возвращаются.Так что не делай этого: -)