我遇到了最奇怪的错误。当您使用Swift扩展一些UIKit类来实现协议时,例如扩展UIButton
以实现协议SomeProtocol
(是的,它甚至可以为空):
protocol SomeProtocol {
}
extension UIButton: SomeProtocol {
}
在右键单击UIButton对象时,IB中的上下文菜单将失去大部分选项:
我应该删除该扩展程序,我会得到这个:
有没有人遇到类似的东西?有解决方案吗?
Xcode 6.1.1和Xcode 6.3 Beta 1都会发生这种情况。无论你在哪里定义扩展 - 在项目的源文件中或在框架中作为子项目。
我尝试将协议声明为
@objc protocol SomeProtocol
@objc protocol SomeProtocol: class
protocol SomeProtocol: class
但没有工作。
答案 0 :(得分:1)
原因可能是您要声明用于扩展ObjC类的纯Swift协议。
尝试将协议声明为@objc protocol SomeProtocol {
,或者甚至强制它仅为类protocol SomeProtocol: class {
。