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