我正在尝试在 ObjC 中导入 Swift 3 类,但由于某些原因我无法执行此操作。该类不是 UIViewController 类,我发现的解决方案非常适用于 View Controller 类,但不适用于 Model 类。谁能帮忙?
open class UserDetails: JSONEncodable {
public var id: Int64?
public var usertoken: String?
public var firstName: String?
public var lastName: String?
public var email: String?
.....
}
最佳答案
要使 Swift 类在 Objective-C 中可见,它必须是 NSObject
的子类。此外,类型必须与 Objective-C 兼容(例如,可选的数字类型,如 Int64?
不能在 Objective-C 中表示)。它必须是非可选的或使其成为 NSNumber
。
参见 Writing Swift Classes and Protocols with Objective-C Behavior 将 Swift 与 Cocoa 和 Objective-C 结合使用。
仅供引用,我知道您问过 Swift 3,但如果编写 Swift 4,请确保使用 @objcMembers
:
@objcMembers
open class UserDetails: NSObject, JSONEncodable {
public var id: Int64 = 0
public var usertoken: String?
public var firstName: String?
public var lastName: String?
public var email: String?
...
}
或者如果其中只有一部分需要从 Objective-C 中获得,只需使用 @objc
限定符指定各个属性/方法即可。
关于ios - 在 obj c 中快速导入 Swift 非 View Controller 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46782693/