Я хочу отправить NSString сформировать еще один на другой iPhone/IPad через GameCenter , но столкновение с EXC_BAD_ACCESSОтправить NSString через Game Center
здесь в файле .h
typedef enum {
kMessageTypeRandomNumber = 0,
kMessageTypeGameBegin,
kMessageTypeSubmit,
kMessageTypeExchange,
kMessageTypePickup,
kMessageTypePass,
kMessageTypeGameOver
} MessageType;
typedef struct {
MessageType messageType;
} Message;
typedef struct {
Message message;
NSString *submitTile;
} MessageSubmit;
и здесь, в. м-файл
- (void)sendData:(NSData *)data {
NSError *error;
BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];
if (!success) {
CCLOG(@"Error sending init packet");
[self matchEnded];
}
}
-(void)sendSubmit:(NSString *) submitTile {
MessageSubmit message;
message.message.messageType = kMessageTypeSubmit;
message.submitTile = submitTile;
NSData *data = [NSData dataWithBytes:&message length:sizeof(MessageSubmit)];
[self sendData:data];
}
и функция и здесь, если я нажимаю на CCMenu изображения он будет вызывать onSubmit являются onSubmit функция
-(void)onSubmit
{
NSString *submitStr = @"1-7-7 =-7-8 1-7-9";
[self sendSubmit:submitStr];
}
и последний из которых является метод didReceiveData
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {
if (message->messageType == kMessageTypeSubmit) {
MessageSubmit * messageSubmit = (MessageSubmit *) [data bytes];
NSString *submitStr = messageSubmit->submitTile;
NSLog(@"SubTile %@",submitStr);
}
}
он есть EXC_BAD_ACCESS на линии NSString *submitStr = messageSubmit->submitTile;
.
Есть ли способ отправить сообщение NSString через iPhone/iPad?
Можете ли вы показать пример использования NSCoding и NSData, которые вы указали. Thx –
Прочтите документацию, попробуйте сделать это самостоятельно, и если вы терпите неудачу, отправьте еще один вопрос, объясняющий, что вы пробовали, и где он потерпел неудачу. – Jim
«rtfm» - это плохой способ ответить кому-то (на stackoverflow всех мест). Downvoted. – Jonny