中文 | 英文】
GGMutipeerKit 【GGMutipeerKit 是基于封装的小框架。支持函数式语法糖,使代码更简洁。
1.安装
1)CocoaPods 支持
pod 'GGMutipeerKit', '~> 0.0.1'
2)Carthage 支持 即将推出
您也可以直接下载 framework 文件导入项目。
2.如何使用?
1.传统方式
1)初始化
GGMultipeer *session = [[GGMultipeer alloc] init];
2)浏览器模式
[session startBrowsingNearbyPeersToSessionWithDisplayName:@"server"];
@GGWeakObjc(session);
[session setConnectStateNotification:^(MCPeerID * _Nonnull peer, MCSessionState state, NSString * _Nonnull log) {
@GGStrongObjc(session);
if (state == MCSessionStateConnected) {
[session sendMessage:@"hello"];
}
}];
[session setReceivedMessageNotification:^(id _Nonnull message, MCPeerID * _Nonnull fromPeer) {
NSLog(@"server recieved message: %@",message);
}];
3)广告商模式
[session startBrowsingNearbyPeersToSessionWithDisplayName:@"client"];
[session setConnectStateNotification:^(MCPeerID * _Nonnull peer, MCSessionState state, NSString * _Nonnull log) {
@GGStrongObjc(session);
if (state == MCSessionStateConnected) {
[session sendMessage:@"hello"];
}
}];
[session setReceivedMessageNotification:^(id _Nonnull message, MCPeerID * _Nonnull fromPeer) {
NSLog(@"client recieved message: %@",message);
}];
2.函数式语法糖
1)初始化
GGMultipeer *session = [[GGMultipeer alloc] init];
2)浏览器模式
session.start(BrowerMode,@"server",^(MCPeerID *peer, MCSessionState state,NSString *log) {
if (state == MCSessionStateConnected) {
session.message(@"hello",30,^(NSString *respondMessage,NSError *err) {
NSLog(@"server recieved message: %@ err:%@",respondMessage,err);
});
}
});
3)广告商模式
session.start(AdvertiserMode,@"client",^(MCPeerID *peer, MCSessionState state,NSString *log) {
if (state == MCSessionStateConnected) {
session.message(@"world",30,^(NSString *respondMessage,NSError *err) {
NSLog(@"client recieved message: %@ err:%@",respondMessage,err);
});
}
});
快速Message模式:提供一键式message传输功能,无需等待握手。(注:仅支持一次数据传输)
1)初始化
GGMultipeer *session = [[GGMultipeer alloc] init];
2)浏览器模式
session.onceMessageForAutomator(BrowerMode,@"server",@"hello",30,^(NSString *respondMsg,NSError *err){
NSLog(@"server recieved message: %@ err:%@",respondMsg,err);
});
3)广告商模式
session.onceMessageForAutomator(AdvertiserMode,@"client",@"world",30,^(NSString *respondMsg,NSError *err){
NSLog(@"client recieved message: %@ err:%@",respondMsg,err);
});
提示:由于ObjC的函数式语法糖实际上采用block调用方式实现,实质上并不是方法调用。书写时Xcode不会有提示。这里我采用了Snippets方式,这里是下载链接,导入到你的Xcode就可以享用了。
许可证
GGMutipeerKit 支持MIT开源协议。
问题与Star
在使用过程中,若有问题,欢迎issue
当然也期待你给我个小