I am making an online shooter and in my pre-game lobby I want players to be able to send messages. I followed Ray Wenderlich's tutorial and I have had no problems at all sending and receiving CGPoints, Booleans, Integers, Floats but I am having a problem sending NSStrings. The app just crashes. This is what I have...
typedef struct {
Message message;
NSString *messageToSend;
} MessageSendMessage;
-(void)sendData:(NSData*)data {
NSError *error;
BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];
if (!success) { NSLog(@"Error sending init packet"); [self matchEnded]; }
}
-(void)sendMessage:(NSString*)messageToSend {
MessageSendMessage message;
message.message.messageType = kMessageTypeSendMessage;
message.messageToSend = messageToSend;
NSData *data = [NSData dataWithBytes:&message length:sizeof(MessageSendMessage)];
[self sendData:data];
}
-(void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {
if (otherPlayersID == nil) otherPlayersID = [playerID retain];
otherPlayersID = playerID;
Message *message = (Message*)[data bytes];
switch (message->messageType) {
case kMessageTypeSendMessage:
{
MessageSendMessage *messageSend = (MessageSendMessage*)[data bytes];
// STWS = String that was sent
NSString *stws = messageSend->messageToSend;
CCLabelTTF *label = [CCLabelTTF labelWithString:stws fontName:@"pirulen.ttf" fontSize:15];
label.position = ccp(240, 160);
[self addChild:label];
}
break;
default:
break;
}
}
The app crashes when it is setting the string of the CCLabelTTF. Any help would be appreciated. Thanks