小编use*_*392的帖子

如何符合定义具有相同名称和不同签名的方法的两个协议?

我正在使用iOS7的新功能MultipeerConnectivity.它配备了一个功能didChangeState:

在ViewController.h中,

#import <GameKit/GameKit.h>
#import <MultipeerConnectivity/MultipeerConnectivity.h>
@interface ViewController : UIViewController <GKPeerPickerControllerDelegate, GKSessionDelegate, MCBrowserViewControllerDelegate, MCSessionDelegate>
Run Code Online (Sandbox Code Playgroud)

在ViewController.m中,需要以下两种方法来实现:

- (void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state{ ...... }
Run Code Online (Sandbox Code Playgroud)

//名称与iOS6 Gamekit功能重复:

- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state { ...... }
Run Code Online (Sandbox Code Playgroud)

由于iOS不支持函数重载,我应该如何在同一个程序中包含这两个函数?它编译失败.错误:方法'session的重复声明:peer:didChangeState:'我正在使用最新的XCode 5.0.1.

overloading objective-c gamekit ios

3
推荐指数
1
解决办法
438
查看次数

标签 统计

gamekit ×1

ios ×1

objective-c ×1

overloading ×1