0

Я пытаюсь определить, нажата ли кнопка назад или вперед в центре управления, но когда я запускаю следующий код, он выдает if (receivedEvent.subtype == UIEventSubtypeRemoteControlNextTrack, говоря unrecognized selector sent to instance 0x170259890. Я не уверен, что не так, и почему он не работает.Подтип получаемого события является непризнанным селектором

- (void)viewDidLoad { 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNowPlayingItemChanged:) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification object:self.player]; 
    [self.player beginGeneratingPlaybackNotifications]; 
} 

-(void)handleNowPlayingItemChanged :(UIEvent *)receivedEvent { 
    NSLog(@"worked"); 
    if (receivedEvent.subtype == UIEventSubtypeRemoteControlNextTrack) { 
     NSLog(@"next track"); 
    } 
} 
+0

Обновить свой вопрос с полным сообщением об ошибке. Вы оставили важные части. – rmaddy

ответ

1

Каждый раз, когда вы установили обработчик для уведомления с помощью NSNotificationCenter, вы должны знать, что этот метод вы предоставите должен быть настроен определенным образом. Из документов для addObserver:selector:name::

Selector, который определяет сообщение приемник посылает notificationObserver уведомить его о уведомлении проводки. Метод, заданный notificationSelector, должен иметь один и только один аргумент (экземпляр NSNotification).

Это означает, что ваш метод handlePlayingItemChanged: должен быть:

- (void)handleNowPlayingItemChanged:(NSNotification *)notification { 
    NSLog(@"worked"); 

    MPMusicPlayerController *player = notification.object; 
    // get the nowPlayingItem or any other property as needed 
} 
+0

Изменение его с 'UIEvent' на' NSNotification' не позволит мне проверить подтип полученного события. – smecperson

+0

Вы не можете. Нет события, просто уведомление. 'UIEvent' - это неправильный тип параметра при настройке селектора для центра уведомлений. – rmaddy

+0

Все, что вы знаете, это то, что элемент изменился. Уведомление не сообщает вам, как и в каком направлении. Определение того, что, если это возможно, является совершенно отдельным вопросом от того, который вы задали здесь. – rmaddy

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

  • Нет связанных вопросов^_^