Lor*_*Huz 0 objective-c ios swift swift2
我在 Objective-C 项目中使用 Swift 时遇到了一些问题。
例如,我使用以下库(https://github.com/Hearst-DD/ObjectMapper)。我已经尝试在我的子类之前添加 @objc 指令,但据说只有从 NSObject 继承的类才能声明为 @objc。似乎它只与 Swift 2.0 有关
所以我的问题是,如何在我的 Objective-C 项目中使用纯 swift 类或库?如果还有可能...
我的模型如下所示: import Foundation import ObjectMapper
class SSStreetAddressRequest: Mappable {
var street:String?
var city:String?
var state:String?
var zip:String?
required init?(_ map: Map){
}
func mapping(map: Map) {
street <- map["street"]
city <- map["city"]
state <- map["state"]
zip <- map["zip"]
}
}
Run Code Online (Sandbox Code Playgroud)
Mappable 是一个协议:https : //github.com/Hearst-DD/ObjectMapper/blob/master/ObjectMapper/Core/Mapper.swift
在 Objective-C 中,你不能创建没有超类的类。这就是为什么@objc 至少在没有 NSObject 的情况下将无法工作的原因。
所以你必须至少使用 NSObject。那就是我会怎么做
@objc class SSStreetAddressRequest: NSObject {
var street:String?
var city:String?
var state:String?
var zip:String?
}
extension SSStreetAddressRequest : Mappable {
required init?(_ map: Map){
}
@objc func mapping(map: Map) {
street <- map["street"]
city <- map["city"]
state <- map["state"]
zip <- map["zip"]
}
}
Run Code Online (Sandbox Code Playgroud)