这个问题与this问题基本相同,但那个问题没有答案。
TL; DR:协议未显示在MyProject-Swift.h
秘密桥接文件中。所以(不出意外)Obj-C代码找不到它。
我已经能够在一个从零开始的项目中复制它。这就是我做的。
UIView
子类。 MyProject-Bridging-Header.h
。 (,显)MyProject-Swift.h
文件。 (DerivedData/.../DerivedSources
)。 ViewController.m
。 MyProject-Swift.h
中加入ViewController.m
文件。 现在因为奇怪......
ViewController
符合并实施此协议。在ViewController.m
#import "MyProject-Swift.h"
@interface ViewController () <MyProtocol> // Can't find protocol declaration
检查MyProject-Swift.h
文件确认协议不在那里。但是在一些大的预先存在的混合项目(构建)中,我没有在他们的 -Swift.h
文件中看到任何协议。
如何在Objective-C中识别Swift协议?
答案 0 :(得分:0)
我为我的项目做了这个
在定义协议时,您可以在协议定义
之前添加@objc
@objc protocol NewViewControllerDelegate {
}
你已经完成了
注意:我认为@objc
使得快速协议和类对目标c可见