RealmとObjectMapper(https://github.com/Hearst-DD/ObjectMapper)を組み合わせで以下のようなモデルを作っているのですが、このモデルを User(forPrimaryKey: "1") の呼び出し方でインスタンス化しようとした場合、Cannot invoke initializer for type 'User' with an argument list of type '(forPrimaryKey: String)' と怒られてしまいます。
class User: RLMObject, Mappable {
var id:String?
var name:String?
required init?(_ map: Map) {
super.init()
mapping(map)
}
func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
}
override class func primaryKey() -> String {
return "id"
}
}
おそらく、RLMObjectクラスとMappableプロトコルの多重継承が原因だとおもうのですが、なぜMappableプロトコルを継承すると、User(forPrimaryKey: "1") が利用できなくなるのが理解できておりません。
RealmというよりはSwiftの言語利用の話になると思うのですが、ご存知の方、お手数ですがご教授いただけると助かります。
Mappableプロトコルの内容は以下です。
public protocol Mappable {
init?(_ map: Map)
mutating func mapping(map: Map)
}
再現コードを以下に置きます。
https://github.com/okitsutakatomo/RealmWithObjectMapper