我想送的NSString形成通過GameCenter的 另外一個到另一個iPhone/iPad上發送的NSString,但它與EXC_BAD_ACCESS通過遊戲中心
這裏墜毀在.h文件中
typedef enum {
kMessageTypeRandomNumber = 0,
kMessageTypeGameBegin,
kMessageTypeSubmit,
kMessageTypeExchange,
kMessageTypePickup,
kMessageTypePass,
kMessageTypeGameOver
} MessageType;
typedef struct {
MessageType messageType;
} Message;
typedef struct {
Message message;
NSString *submitTile;
} MessageSubmit;
在
這裏。 M檔
- (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;
。
有沒有辦法通過iPhone/iPad發送NSString消息?
你能舉出一個使用NSCoding和NSData的例子,你說的是thx – 2012-03-08 17:41:43
閱讀文檔,嘗試自己做,如果你失敗了,發表另一個問題,解釋你嘗試過的以及失敗的地方。 – Jim 2012-03-08 18:41:40
「rtfm」是回答某人的不好方法(在所有地方的stackoverflow上)。 Downvoted。 – Jonny 2013-05-03 13:44:36