版本 0.0.1

GGMutipeerKit 0.0.1

维护者:itmarsung.



  • marsung

logo

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

当然也期待你给我个小【Star】【Star】【Star】