【发布时间】:2015-02-12 02:59:36
【问题描述】:
我遇到了最奇怪的错误。当你用 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
但没有任何作用。
【问题讨论】:
-
你试过使用'NSObjectProtocol'吗?