使用 Swift 与 Cocoa 和 Objective-C (Swift 2.1) 文档的互操作性部分的以下段落似乎表明有一种方法可以使用不从 Objective-C 类继承的 Swift 类来实现互操作性。
当您创建从 Objective-C 类继承的 Swift 类时,该类及其成员(与 Objective-C 兼容的属性、方法、下标和初始化程序)会自动从 Objective-C 中获得。在某些情况下,您需要更精细地控制 Swift API 如何向 Objective-C 公开。如果您的 Swift 类不是从 Objective-C 类继承的,或者如果您想更改接口中符号的名称,因为它暴露给 Objective-C 代码,您可以使用 @objc 属性。
我尝试了以下操作:
import Foundation
@objc class FooBar {
@objc var name: String;
init() {
name = "Hello World!"
}
}
但不幸的是,它给出了一个编译错误:只有继承自 NSObject 的类才能声明为@objc
我误解了什么吗?