2015-11-11 22 views
2

當我嘗試從數據庫加載用戶時,出現此錯誤。致命錯誤:爲類MyApp.User使用未實現的初始化'init(realm:schema :)'

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() } 

}

我想implemeting是init()方法,但我得到(使用未聲明的標識符RLMObjectSchema的): enter image description here

任何提示?

+1

根據RealmSwift的'Object'源代碼,似乎您嘗試覆蓋的初始值設定項不應該被使用,因爲它僅供內部使用。 –

回答

1

當我使用realm時,我只會使用便捷的init。

在你的情況

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(realm: RLMRealm, schema: RLMObjectSchema) { 
    super.init(realm: realm, schema: schema) 
} 

當你實現候init(),迅速將不會繼承它們由境界所需的其他候初始化方法。

+0

我不能實現init(realm:schema),看看我上面的圖片,領域不知道RLMRealm/RLMObjectSchema – Godfather

+0

add'import realm',爲什麼不使用conveniece init? – Yon

+0

@Yon,正如我使用便利的init?(_ map:Map){self.init()},它仍然給我編譯時錯誤「初始化器需求初始化只能通過非final類中所需的初始化器滿足」,你可以幫助什麼? – Nitesh

相關問題