Swift 4 迁移 - 从非协议继承,非 class AnyObject
Swift 4 Migration - Inheritance from non-protocol, non class AnyObject
我有我的 Swift 3
项目,我想将其转换为 Swift 4
。
在对话后编译时,我得到一些关于 Inheritance from non-protocol
.
的错误(都是一样的)
这是触发错误的 class:
import Foundation
import ObjectMapper
//MARK: - Equatable
func ==(lhs: ProcedureSearchModel, rhs: ProcedureSearchModel) -> Bool {
return lhs.hashValue == rhs.hashValue
}
class ProcedureSearchModel : AnyObject, Mappable, Hashable {
var procedureUid : String = ""
var cpt : String = ""
var description : String = ""
required init?(map: Map) {
}
//MARK: - Hashable
var hashValue : Int {
get {
return procedureUid.hashValue
}
}
init (procedureUid : String, cpt: String, description : String) {
self.procedureUid = procedureUid;
self.cpt = cpt;
self.description = description
}
// Mappable
func mapping(map: Map) {
procedureUid <- map["ProcedureUid"]
cpt <- map["CPT"]
description <- map["Description"]
}
}
Any clue on how to resolve this issue?
谢谢
您的 class 定义不能包含 AnyObject。 AnyObject 不是 class 或协议。
您需要从 class 定义中删除 AnyObject,或者将其替换为 NSObject(如果您希望它成为 Objective-C 兼容的 class。
class ProcedureSearchModel : Mappable, Hashable {
}
或者:
class ProcedureSearchModel : NSObject, Mappable, Hashable {
}
我有我的 Swift 3
项目,我想将其转换为 Swift 4
。
在对话后编译时,我得到一些关于 Inheritance from non-protocol
.
import Foundation
import ObjectMapper
//MARK: - Equatable
func ==(lhs: ProcedureSearchModel, rhs: ProcedureSearchModel) -> Bool {
return lhs.hashValue == rhs.hashValue
}
class ProcedureSearchModel : AnyObject, Mappable, Hashable {
var procedureUid : String = ""
var cpt : String = ""
var description : String = ""
required init?(map: Map) {
}
//MARK: - Hashable
var hashValue : Int {
get {
return procedureUid.hashValue
}
}
init (procedureUid : String, cpt: String, description : String) {
self.procedureUid = procedureUid;
self.cpt = cpt;
self.description = description
}
// Mappable
func mapping(map: Map) {
procedureUid <- map["ProcedureUid"]
cpt <- map["CPT"]
description <- map["Description"]
}
}
Any clue on how to resolve this issue?
谢谢
您的 class 定义不能包含 AnyObject。 AnyObject 不是 class 或协议。
您需要从 class 定义中删除 AnyObject,或者将其替换为 NSObject(如果您希望它成为 Objective-C 兼容的 class。
class ProcedureSearchModel : Mappable, Hashable {
}
或者:
class ProcedureSearchModel : NSObject, Mappable, Hashable {
}