@objc 迁移到 Swift 2 时出错

@objc error when migrated to Swift 2

我有一个 Swift class 声明如下:

@objc class MyHelper {
 // class code
}

我必须这样做才能从 Objective-C classes 访问这样的 class,因为我在我的项目中混合了多种语言。现在我升级到 Xcode 7,我得到这个错误:

Only classes that inherit from NSObject can be declared @objc

我的 Objective-C class 不再知道这样的 class。我想我应该从 NSObject 继承我的 Swift class,这会对应用程序的工作方式产生任何影响吗?

谢谢

在 Apple 开发者论坛中查看 Apple 员工 SevenTenEleven 的 reply

他提到这是因为 @objc 在 Swift-rooted class 上从来没有表现得像 NSObject-rooted class,导致生成的 header 和运行时。

我们仍然可以将任何 Swift class 实例视为 AnyObject,将 Swift class 上的方法和属性标记为 @objc,并符合 Objective-C 协议; class 只是没有在生成的 header 中公开,并且不会默认在 Objective-C.

中提供其成员