我有一个Swift
类声明如下:
@objc class MyHelper {
// class code
}
我必须这样做才能从Objective-C
类访问这样的类,因为我在我的项目中混合语言。现在我已升级到Xcode 7
,我收到此错误:
只能从NSObject继承的类声明@objc
我的Objective-C
课程不再知道这样的课程了。我想我应该从Swift
继承我的NSObject
课程,这会对应用的工作方式产生什么影响吗?
由于
答案 0 :(得分:3)
在Apple开发者论坛中查看Apple员工SevenTenEleven的reply。
他提到这是因为Swift-rooted类上的@objc
从未像NSObject根类那样表现,导致生成的标头和运行时出现各种奇怪现象。
我们仍然可以将任何Swift类实例视为AnyObject,将Swift类上的方法和属性标记为@objc,并符合Objective-C协议;该类不会在生成的标题中公开,并且不会默认在Objective-C中提供其成员。