2012-05-03 2 views
0

Можно создать дубликат:
Send NSString via Game Centerотправить NSData другому процессу, а не просто указатель

Я работал над этим в течение двух дней, и теперь не получить в любом месте, я надеялся, кто-то может пролить свет на проблему.

1) У меня есть NSMUtableArray 2) каждый элемент в массиве сериализуется через [encoder encodeObject: myArray]; и результат возвращается и присваивается структуре «MessageMove», называемой «картами» (типа NSData *) MessageMove сообщение;

....

typedef struct 
{ 
    Message message; 
    NSData *cards; 
} MessageMove; 

3) Теперь, когда карты были преобразованы к типу NSData я теперь хочу сделать то же самое для самой структуры, я называю

NSData * данные = [ NSData dataWithBytes: & длина сообщения: sizeof (сообщение)];

4) Наконец я отправить данные другого игрока следующим

BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error]; 

Беда лежит принимающая сторона не получает каких-либо данных Cards на всех MessageMove-> карты(). Вероятно, это связано с тем, что NSData * не отправляется удаленно, а скорее указатель на него.

Кто-нибудь знает, как я могу отправить фактические данные? Я почесал голову весь день на эту проблему и не знаю, как я могу преодолеть это

большое спасибо

ответ

0

Сделать MessageMove класс Objective-C, что соответствует протоколу NSCoding. Затем сериализуйте его на объект NSData и десериализуйте его на другом конце. Для получения дополнительной информации см. my earlier answer.

Смежные вопросы