Вы можете легко кодировать и декодировать строки в объекты NSData и отправлять их через Game Center.
Для кодирования: используйте этот метод для строки
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
С кодировкой: NSUTF8StringEncoding
Это вернет объект NSData
Для декодирования;
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Edit:
По сути, вам никогда не придется отправлять псевдонимы игроков явно. Есть 2 случая:
1: GKTurnBasedMatch
Если вы используете это, то вот как получить список всех псевдонимов (включая ваш)
NSMutableArray *playerIds = [NSMutableArray arrayWithCapacity:match.participants.count];
for (GKTurnBasedParticipant *part in match.participants) {
if([participant.playerID isKindOfClass:[NSString class]]){
[playerIds addObject:part.playerID];
}
} //at this point you have an array full of playerID strings, next you call this:
[GKPlayer loadPlayersForIdentifiers:(NSArray *)playerIds withCompletionHandler:(void (^) (NSArray *players, NSError *error))completionHandler {
for (GKPlayer *playa in players) {
NSLog(@"%@",playa.alias); // here i'm just logging the aliases but you can do whatever..
}
}];
2.GKMatch: этот случай намного проще, так как ваш GKMatch уже имеет массив playerIDs, такой же, как прежде:
[GKPlayer loadPlayersForIdentifiers:(NSArray *) match.playerIDs withCompletionHandler:(void (^)(NSArray *players, NSError *error))completionHandler {
//again you get the array players full of GKPlayer objects , simply pull the alias you want
}];