迁移到Swift 2时出现@objc错误

时间:2015-09-17 09:19:38

标签: ios objective-c swift xcode7

我有一个Swift类声明如下:

@objc class MyHelper {
 // class code
}

我必须这样做才能从Objective-C类访问这样的类,因为我在我的项目中混合语言。现在我已升级到Xcode 7,我收到此错误:

  

只能从NSObject继承的类声明@objc

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

由于

1 个答案:

答案 0 :(得分:3)

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

他提到这是因为Swift-rooted类上的@objc从未像NSObject根类那样表现,导致生成的标头和运行时出现各种奇怪现象。

我们仍然可以将任何Swift类实例视为AnyObject,将Swift类上的方法和属性标记为@objc,并符合Objective-C协议;该类不会在生成的标题中公开,并且不会默认在Objective-C中提供其成员。