@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.
中提供其成员
我有一个 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.
中提供其成员