Ios 在Swift中的obj c中导入Swift非视图控制器类

Ios 在Swift中的obj c中导入Swift非视图控制器类,ios,objective-c,swift,swift3,uiviewcontroller,Ios,Objective C,Swift,Swift3,Uiviewcontroller,我试图在ObjC中导入Swift 3类,但由于某些原因,我无法这样做。该类不是UIViewController类,我发现的解决方案完全适用于视图控制器类,但不适用于模型类。有人能帮忙吗 open class UserDetails: JSONEncodable { public var id: Int64? public var usertoken: String? public var firstName: String? public var lastName

我试图在ObjC中导入Swift 3类,但由于某些原因,我无法这样做。该类不是UIViewController类,我发现的解决方案完全适用于视图控制器类,但不适用于模型类。有人能帮忙吗

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

请参见将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
限定符指定单个属性/方法。

非常感谢swift3,因为我刚刚创建了NSObject的UserDetails子类并添加了@objc。