文字列をNSDataオブジェクトに簡単にエンコードしてデコードし、Game Centerでそれらを送信することができます。符号化した文字列
- (NSData *)dataUsingEncoding:(NSStringEncoding)encoding
にこの方法を使用する:符号化するために
をNSUTF8StringEncodingこれは復号するNSDataオブジェクト
を返すであろう。
NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
編集:
基本的にあなたが明示的にプレーヤーのエイリアスを送信する必要はありませんよ。
1:2例あり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
}];
フォローアップ:私は現在ゲームセンターからエイリアスを取り出しています。私はARCを使って構造体を通してテキストを送る方法を理解しようとしていました。誰かが簡単な方法を知っているなら、私に知らせてください。 – user1197754