我正在开发一个应用程序,我需要将一个对象发送到另一个应用程序。这两个应用程序使用多重连接框架相互通信。
特别是,我想发送一个名为Order的对象,即
@interface Order : NSObject <NSCoding>
@property (strong, nonatomic) NSString *customerName;
@property (strong, nonatomic) NSDate *arrivalTime;
@property (strong, nonatomic) NSNumber *totalPrice;
@property (strong, nonatomic) NSArray *products;
@end
来自&#34;客户&#34;应用程序将OrderAndPay称为&#34;服务器&#34;应用程序称为POS。以下是我在OrderAndPay应用程序委托中发送此对象的方法
NSData *dataToBeSent = [NSKeyedArchiver archivedDataWithRootObject:self.order];
NSError *error = nil;
NSArray *array = [[NSArray alloc] initWithObjects:[self.mpHandler.session connectedPeers], nil];
if ([self.mpHandler.session sendData:dataToBeSent
toPeers: array
withMode:MCSessionSendDataUnreliable
error:&error]) {
return YES;
}
return NO;
但是我总是没有结果!当我尝试调试时,xCode说
打印错误描述:错误域= MCSession代码= 1&#34;对等( ( POS ))没有连接&#34; UserInfo = 0x16e8bcb0 {NSLocalizedDescription = Peers( ( POS ))没有连接}
所以似乎POS没有连接。但正如我之前写的那样,我使用我的connectedPeers
的方法MCSession
让我的同伴!
我该如何解决?
答案 0 :(得分:1)
你必须在两个应用程序中提供相同的sessionType ..
static NSString * const kMCSessionServiceType = @"mcsessionp2p";
_serviceAdvertiser = [[MCNearbyServiceAdvertiser alloc] initWithPeer:self.peerID
discoveryInfo:nil
serviceType:kMCSessionServiceType];
// Create the service browser
_serviceBrowser = [[MCNearbyServiceBrowser alloc] initWithPeer:self.peerID
serviceType:kMCSessionServiceType
答案 1 :(得分:0)
解决。我在
中的if语句中更改了调用[self.mpHandler.session sendData:dataToBeSent
toPeers: [self.mpHandler.session connectedPeers]
withMode:MCSessionSendDataUnreliable
error:&error]
并且有效。