1
使用Game Center,我們可以在通過藍牙連接的設備之間發送NSString值嗎?我們可以在通過藍牙連接的設備之間發送NSString值,使用Game Center
下面是我的一些代碼部分:
typedef enum {
messageType1 = 0;
messageType2 = 1;
}
messageType;
typedef struct {
MessageType messageType;
NSString *myName;
} MyMessage;
而且在我的課我有這樣的方法來發送消息:
MyMessage myMessage;
myMessage.messageType = messageType2;
myMessage.myName = @"ABCDEFGH";
NSData *data = [NSData dataWithBytes:&myMessage length:sizeof(MyMessage)];
[self sendDataToAllPeers:data withDataMode:GKSendDataReliable error:error];
接收數據我有方法:
-(void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context{
MyMessage myMessage = *((MyMessage *) [data bytes]);
type = myMessage.messageType;
name = myMessage.myName;
}
問題:我怎樣才能得到myName
? (我能得到MessageType
)
感謝ILYA2606。你的回答是對的,但它在我的應用程序中不起作用,因爲我以Struct和Enum的形式發送數據,如我的代碼所示。我不能以NSArray的形式發送數據(因爲數據太大,會影響我的應用程序的性能,例如MessageType是messageType1,messageType2,... messageType20,myMessage包含太多東西,還有一些Struct與MessageType)。 在接收端我使用 if(type = myMessage-> messageType) {執行一些任務,如打印myName} 我需要發送與所示相同格式的數據。 現在,我怎樣才能得到MyName(NSString) – Amit 2013-03-19 05:39:32