我在Objective-C项目中遇到了一些使用Swift的问题。
我使用以下lib作为示例(https://github.com/Hearst-DD/ObjectMapper)。我已经尝试过在我的子类之前添加@objc指令,但是它说只有从NSObject继承的类才能被声明为@objc。似乎它只与Swift 2.0相关
所以我的问题是,如何在Objective-C项目中使用纯粹的swift类或库?如果它可能......
我的模特看起来像这样: 进口基金会 导入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"]
}
}
Mappable是一个协议: https://github.com/Hearst-DD/ObjectMapper/blob/master/ObjectMapper/Core/Mapper.swift
答案 0 :(得分:3)
在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"]
}
}