我已经在这方面工作了两天而且没有到达任何地方,我希望有人可以解决这个问题。
1)我有一个NSMUtableArray 2)通过[encoder encodeObject:myArray]序列化数组中的每个元素;并返回结果并将其分配给名为“cards”的结构“MessageMove”(NSData *类型) MessageMove消息;
...
typedef struct
{
Message message;
NSData *cards;
} MessageMove;
3)现在卡已经转换为NSData类型了我现在想对结构本身做同样的事情,我打电话
NSData * data = [NSData dataWithBytes:& message length:sizeof(message)];
4)最后我将数据发送给其他玩家,如下所示
BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error];
问题在于接收端根本没有获得任何卡数据(MessageMove->卡)。这可能是因为NSData *没有被远程发送,而只是指向它的指针。
有谁知道我如何发送实际数据?我整天都在摸着这个问题而不知道如何克服它
非常感谢答案 0 :(得分:0)
使MessageMove
符合NSCoding
协议的Objective-C类。然后将其序列化为NSData
对象,并在另一端对其进行反序列化。有关详细信息,请参阅my earlier answer。