You're close. You should not increment _index after getting the next player name, since you are not yet advancing to that player.
if (_index == _players.count)
{
_index = 0;
}
//Get the player at the current index
NSString * playerName = (NSString*)_players[_index];
//advance the index to the next play, and "wrap around" to 0 if we are at the end.
index = (index+1) %_players.count
//load the next player's name, but don't increment _index again.
NSString *nextplayerName = (NSString*)_players[_index];
NSLog(@" player %@. nextPlayer = %@", playerName, nextplayerName);
self.turnlabel.text = playerName;