我正在尝试在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?
.....
}
答案 0 :(得分:1)
要使Swift类在Objective-C中可见,它必须是NSObject
子类。此外,类型必须与Objective-C兼容(例如Int64?
之类的可选数字类型无法在Objective-C中表示。它必须是非可选的或使其成为NSNumber
。
请参阅使用Swift与Cocoa和Objective-C中的Writing Swift Classes and Protocols with Objective-C Behavior。
仅供参考,我知道您询问过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
限定符指定各个属性/方法。