我目前正在爲iPad應用程序在XCode中使用Multipeer Connectivity Framework。類型檢查:如何檢查NSData是否是NSArray?
我想與框架發送消息(NSString的,布爾& NSArrays)和字符串都工作正常,但我需要某種類型的檢查到NSData對象轉換爲字符串,陣列等
這是我的didReceiveData梅索德樣子:
- (void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID{
NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSMutableArray *recievedArray = [NSKeyedUnarchiver unarchiveObjectWithData:data];
if ([message isEqualToString:@"PeerIsConnected"]) {
NSLog(@"Peer sended: Connected!");
self.connectionIsOn = TRUE;
dispatch_async(dispatch_get_main_queue(),^{
[self changeConnectionButton:TRUE];
});
NSLog(@"Connection is on (data received) : %@", (self.connectionIsOn) ? @"YES" : @"NO");
}
if ([message isEqualToString:@"Disconnect"]) {
NSLog(@"Peer sended: Disconnect!");
self.connectionIsOn = FALSE;
dispatch_async(dispatch_get_main_queue(),^{
[self changeConnectionButton:FALSE];
});
}
if ([message isEqualToString:@"GoWasClicked"]) {
self.muliplayergameIsOn = TRUE;
self.myTurn = TRUE;
self.startDate = [NSDate date];
self.stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0
target:self
selector:@selector(updateTimer)
userInfo:nil
repeats:YES];
}
我需要一些如果情況,所以我可以投的NSData對象成的NSString或NSArray的OR等
我怎樣才能解決這個問題?
提前致謝!
編輯:這是數組如何sended:
- (void) sendArray:(NSMutableArray *) arrayToSend{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:arrayToSend];
NSError *error;
[self.mySession sendData:data toPeers:[self.mySession connectedPeers] withMode:MCSessionSendDataUnreliable error:&error];
}
在發送方如何創建數據(從字符串,布爾,數組,...)? –
我添加了發送數組的方法... –
如果您只發送一個數組,您爲什麼還會收到其他任何內容(缺少一些數據)? –