Ios 使用Swift接口生成器扩展UIKit类

Ios 使用Swift接口生成器扩展UIKit类,ios,xcode,swift,Ios,Xcode,Swift,我遇到了最奇怪的虫子。使用Swift扩展某些UIKit类以实现协议时,如扩展UIButton以实现协议SomeProtocol(是的,它甚至可以为空): 当右键单击UIButton对象时,IB中的上下文菜单将失去许多选项: 如果我删除该扩展,我将得到以下结果: 有人遇到过类似的情况吗?有解决办法吗 这在Xcode 6.1.1和Xcode 6.3 Beta 1中都会发生。在项目的源文件中或在作为子项目的框架中,在何处定义扩展并不重要 我试着将协议声明为 @objc protocol SomeP

我遇到了最奇怪的虫子。使用Swift扩展某些UIKit类以实现协议时,如扩展
UIButton
以实现协议
SomeProtocol
(是的,它甚至可以为空):

当右键单击UIButton对象时,IB中的上下文菜单将失去许多选项:

如果我删除该扩展,我将得到以下结果:

有人遇到过类似的情况吗?有解决办法吗

这在Xcode 6.1.1和Xcode 6.3 Beta 1中都会发生。在项目的源文件中或在作为子项目的框架中,在何处定义扩展并不重要

我试着将协议声明为

@objc protocol SomeProtocol
@objc protocol SomeProtocol: class
protocol SomeProtocol: class

但是没有一个有效。

原因可能是您正在声明一个用于扩展ObjC类的纯Swift协议。
尝试将协议声明为
@objc-protocol-SomeProtocol{
,或者甚至强制它仅为类,如
protocol-SomeProtocol:class{

我相信我们在这里运气不好。可能发生的是IB只支持ObjC功能,而在ObjC中,你不能用协议扩展类,所以IB在这种情况下会发疯。不过这只是一个猜测,你可能更幸运地在苹果开发者论坛上提问,甚至只是提交一个bug,看看苹果人怎么说。Te错误。提交了错误19799266。尝试使用类似这样的东西,它会向OpenRadar发布一个副本,然后我也可以提交这么大的文件,这样可能会引起更多的注意。您尝试过使用“NSObjectProtocol”吗?
@objc protocol SomeProtocol
@objc protocol SomeProtocol: class
protocol SomeProtocol: class