【发布时间】:2020-10-28 19:50:35
【问题描述】:
我最近转移到 Xcode 12 并开始收到 Xcode 11 中不存在的错误。错误与扩展有关-
public typealias UpdateBlock<T> = (_ object: T?) -> Void
protocol ModelMappeable {
func map(_ values: JSON, realm: Realm?)
}
extension ModelMappeable where Self: BaseModel {
static func getOrCreate(realm: Realm, values: JSON?, updates: UpdateBlock<Self>?) -> Self {
var object: Self!
if let primaryKey = values?["_id"].string {
if let newObject = realm.object(ofType: Self.self, forPrimaryKey: primaryKey as AnyObject) {
object = newObject
}
}
if object == nil {
object = self()
}
if let values = values {
object.map(values, realm: realm)
}
updates?(object)
return object
}
}
从初始化程序中删除覆盖后得到以下错误 -
【问题讨论】:
-
BaseModel是否有一个不带参数的required初始化程序? -
@Sulthan,不。请检查更新的问题。我还为基本模型添加了图像。
-
请始终添加代码,而不是图像。图像非常适合提供附加信息,但前提是您还将代码添加为文本。显然,您不能使用
Self()创建实例,因为ModelMappeable或BaseModel都不包含required init()。 -
@Sulthan,那么解决方案是什么?