2012-05-03 19 views
0

可能重複:
Send NSString via Game Center發送的NSData到另一個進程,並不僅僅是指針

我一直在這兩天現在沒有任何地方得到,我希望有人可以解決這個問題。 1)我有一個NSMUtableArray 2)數組中的每個元素通過[編碼器encodeObject:myArray]來序列化; 2)通過[編碼器encodeObject:myArray]序列化數組中的每個元素。並將結果返回並分配給名爲「cards」(類型爲NSData *)的結構「MessageMove」 MessageMove消息;

....

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

3)既然卡已轉換爲類型的NSData我現在想要做的結構本身,我叫

的NSData *數據= [相同NSData dataWithBytes:& message length:sizeof(message)];

4)最後,我將數據發送給其他玩家如下

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

的麻煩在於,在所有(MessageMove->卡的接收端沒有得到任何的卡中的數據)。這可能是因爲NSData *沒有被遠程發送,而只是指向它的指針。

有誰知道我可以如何發送實際數據?我一直在抓我的頭,整天在這個問題,不知道我可以克服它

千恩萬謝

回答

0

MessageMove一個符合NSCoding協議的Objective-C類。然後將其序列化爲一個NSData對象,並在另一端反序列化它。有關更多詳細信息,請參見my earlier answer

相關問題