You have two handler : One for notifications, one for your button action (it seems you created a play/pause button in your app).
You shoud remove this line from your button handler since your notification handler do the same work.
[self._playPauseButton setTitle:@"Play" forState:UIControlStateNormal];
I also advise to do
if (playbackState == MPMusicPlaybackStatePlaying) {
[self.musicPlayer pause];
}
else {
[self.musicPlayer play];
}
to be sure there won't be any state you don't handle that block your way. (And same idea to your notification handler)
Also, the advice of @rckoenes is good, try to handle every Notification, not only the one of your object.
Also try to remove the self.musicPlayer in the object parameter of the NSNotificationCenter and check if it works then.