我正在制作一款在多人游戏中心的设备之间发送一些数据的游戏。
我发送的数据包括NSArray&一条消息,通知其他玩家分数的变化。
我已经为得分消息定义了结构:
typedef NS_ENUM(NSUInteger, MessageType) {
kMessageTypeUpdateScore
};
typedef struct {
MessageType messageType;
} Message;
typedef struct {
Message message;
int score;
} MessageUpdateScore;
以下是接收数据的代码:
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID {
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data];
// data is an array
Message *message = (Message *)[data bytes];
if (message->messageType == kMessageTypeUpdateScore) {
// data is a message
}
}
我的问题是 - 如何区分NSArray&消息,我可以解压缩NSData并相应地做相应的事情吗?
答案 0 :(得分:0)
我遇到了同样的问题,你可以在这里找到我的解决方案: How to Covert struct with an Array of string to NSData and vice versa Swift
如果您找到了更好的解决方案,请留下一些反馈。
您可以找到一个有效的例子here。