Objective C类找不到Swift协议的定义

时间:2017-03-01 20:29:49

标签: ios objective-c swift

我有一个Swift协议,如下所示:

@objc protocol Linkable {
    func presentLink(link: MyLink)
}

我还有一个Objective-C类,它不能很好地使用这个协议:

@protocol Linkable;

@interface MyDetailViewController : MyTableViewController <Linkable>

etc...

据我所知,我已经正确地声明了协议,协议有@objc符号,我将它放入Objective C类的接口声明中,但我仍然得到了在@interface开始的行发出警告。

警告说:“无法找到'可链接'的协议定义。”

奇怪的是,它构建并运行,它按预期工作,但为什么警告如果Linkable实际上没有问题?是否有不同的方式来声明协议,或符合它以清除警告?

这只是Xcode的警告之一,但措辞不佳,如果是这样,实际发生了什么?

修改

以下是一个包​​含相同错误的自包含示例项目:https://github.com/thinkfishhook/Swift-ObjC_Protocol

1 个答案:

答案 0 :(得分:0)

#import "ViewController.h"
#import "Protocol_WTF-Swift.h"

@interface ViewController () <MyProtocol>

@end

@implementation ViewController

- (void)doTheThings {
  // doing the things
}

@end