게임 센터 멀티 플레이어 용 iphone 게임에서 int를 보내려고합니다.Int 긴 오름차순 값으로 표시
정수가 예상되어 오히려 이상한 정수 값으로 나타나고 나타납니다.
내 .H이 있습니다
typedef enum
{
kPacketTypeScore,
} EPacketTypes;
typedef struct
{
EPacketTypes type;
size_t size;
} SPacketInfo;
typedef struct
{
SPacketInfo packetInfo;
int score;
} SScorePacket;
을 그런하는 .m :
송신 데이터 :
scoreData *score = [scoreData sharedData];
SScorePacket packet;
packet.packetInfo.type = kPacketTypeScore;
packet.packetInfo.size = sizeof(SScorePacket);
packet.score = score.score;
NSData* dataToSend = [NSData dataWithBytes:&packet length:packet.packetInfo.size];
NSError *error;
[self.myMatch sendDataToAllPlayers: dataToSend withDataMode: GKMatchSendDataUnreliable error:&error];
if (error != nil)
{
// handle the error
}
수신 :
SPacketInfo* packet = (SPacketInfo*)[data bytes];
switch (packet->type)
{
case kPacketTypeScore:
{
SScorePacket* scorePacket = (SScorePacket*)packet;
scoreData *score = [scoreData sharedData];
[scoreLabel setString:[NSString stringWithFormat:@"You: %d Challenger: %d", score.score, scorePacket]];
break;
}
default:
CCLOG(@"received unknown packet type %i (size: %u)", packet->type, packet->size);
break;
}
어떤 아이디어가? 감사.
아 물론 당연한 것 같지만 오류가 발생합니다 : 구조체 또는 공용체가 아닌 멤버의 '점수'요청 –
거의 'scorePacket-> score'라고 말한 내용입니다. –