Почему MPMovieLoadState имеет состояние 5?

Я нахожу MPMoviePlayerController.h, есть

enum {
    MPMovieLoadStateUnknown        = 0,
    MPMovieLoadStatePlayable       = 1 << 0,
    MPMovieLoadStatePlaythroughOK  = 1 << 1, // Playback will be automatically started in this state when shouldAutoplay is YES
    MPMovieLoadStateStalled        = 1 << 2, // Playback will be automatically paused in this state, if started
};
typedef NSInteger MPMovieLoadState;

но когда я сделал

NSLog(@"%d",player.loadState)

он печатает 5 или 3, как это произошло? Поскольку я знаю, что loadstate имеет значение 0,1,2,4, обратитесь к документации разработчика. Спасибо!

Ответ 1

PlayState - это битмаска. Можно задать любое количество бит, например

MPMovieLoadStatePlaythroughOK | MPMovieLoadStatePlayable

Проверьте состояния как это:

MPMovieLoadState state = [playerController loadState];
if( state & MPMovieLoadStatePlaythroughOK ) {
        NSLog(@"State is Playthrough OK");
}