Swift:找不到协议声明

4
我在Swift 2中遇到了一个非常奇怪的错误。我正在使用“EventKitUI”,并能够显示视图控制器。但是当我尝试添加委托支持时,我会得到两个构建错误:
无法找到“EKEventEditViewDelegate”协议声明 预期类型
这些错误显示在我的项目“-swift.h”文件中(该项目混合使用Swift和Objective-C)。
你有什么想法为什么会出现这种情况吗?除非我漏了什么,否则我看不到任何可能导致这种错误的基本错误(例如错别字等)。

你好,你能展示一下如何导入EventKit吗? - Jan ATAC
在文件顶部添加import EventKitUI。我还通过项目设置添加了该框架。 - user470763
3个回答

13
奇怪的修复方法,但是通过在我的桥接头文件中导入#import <EventKitUI/EventKitUI.h>,问题得到了解决。

请查看@import和#import之间的区别。这篇文章可能会解释清楚:https://dev59.com/omMk5IYBdhLWcg3w0RCU - Jan ATAC

1
对于这个问题,如果您的协议包含ObjC不支持的内容,例如Swift结构体,则会出现此问题。每当我遇到这种情况时,我通常发现结构体是我期望从协议中来回发送的某个部分。

这解释了我的问题,因为我的导入是正确的。委托中有两个函数返回了一个Swift结构体。谢谢。 - Louis Cremen

0
突然间我在使用CocoaPods时遇到了这个错误。我通过在Swift桥接头文件中导入SDWebImage来修复它,就像这样:
#import <SDWebImage/SDWebImage-umbrella.h>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接