致命错误:使用未实现的初始化程序&#init;(领域:架构:)'对于MyApp.User类

时间:2015-11-11 10:58:16

标签: ios swift realm

我尝试从数据库加载用户时收到此错误。

    dispatch_async(dispatch_queue_create("background", nil)) {
        let realm = try! Realm()
        let users = realm.objects(User)
        print(users)
    }


class User: Object, Mappable {

  dynamic var id = 0
  dynamic var name = ""
  dynamic var userName = ""

required init() {
    super.init()
}

// MARK: Mappable
func mapping(map: Map) {
    id <- map["Id"]
    name <- map["Name"]
    userName <- map["UserName"]
}

required init?(_ map: Map) { super.init() }

}

我尝试了实现init方法,但我得到了(使用未声明的标识符RLMObjectSchema): enter image description here

任何提示?

1 个答案:

答案 0 :(得分:1)

当我使用领域时,我只会使用便利初始化。

在你的情况下

class User: Object, Mappable {

    dynamic var id = 0
    dynamic var name = ""
    dynamic var userName = ""

    // MARK: Mappable
    func mapping(map: Map) {
        id <- map["Id"]
        name <- map["Name"]
        userName <- map["UserName"]
    }

    convenience init?(_ map: Map) { self.init() }
}

如果你想要实现指定init,你应该实现

init(realm: RLMRealm, schema: RLMObjectSchema) {
    super.init(realm: realm, schema: schema)
}

当你实现指定init()时,swift将不会继承领域所需的其他指定init方法。