Если я начну с реализации минималистического пользовательского интерфейса, состоящего из добавления единственного UIButton (с соответствующим IBOutlet) к представлению по умолчанию в раскадровке по умолчанию и добавлению метода действия к моему классу контроллера, тогда все работает правильно (т.е. мое действие вызывает, когда я нажимаю кнопку).iOS MediaPlayer вызывает крах приложения
Теперь, если я просто включить MediaPlayer/mediaplayer.h на мой взгляд, заголовочный файл контроллера, так:
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface Playing_Video_FilesViewController : UIViewController
@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;
@property (nonatomic, strong) IBOutlet UIButton *playButton;
@end
и добавьте рамки MediaPlayer к проекту, он выходит из строя с печально известной «этот класс а не ключевое значение, соответствующее кодированию для ключевого playButton ".
Если я удаляю ссылку на среду MediaPlayer из проекта, она перестает сбой. Если я вместо этого удаляю кнопку, но оставляю среду MediaPlayer, она также перестает разбиваться.
Есть ли что-то еще, что я должен сделать, чтобы использовать MediaPlayer и базовый стандартный интерфейс одновременно?
Edit: Я обходил эту проблему, создав файл .xib вместо того, чтобы использовать раскадровку, например, как это сделано в примере приложении VideoPlayer, которая не использует раскадровку. Тот же код, но теперь он работает.
Вы синтезировали свойства в своем файле m и убедились, что вы правильно подключили IBOutlet в playbutton? – rydgaze
Да, я поставил синтез. Я создал свойство UIButton, управляя перетаскиванием из UIButton в своем раскадровке в файл .h-файла. Так что это, безусловно, хорошо подключен. Я сбит с толку. –
Вы можете перейти к навигатору точки останова в xcode, используя технику, указанную в этом сообщении: http://stackoverflow.com/questions/11275608/this-class-is-not-key-value-coding-compliant-for-the- key-xxx – rydgaze