realm objectForPrimaryKey无法在数据库中找到我的对象

时间:2016-06-07 14:22:35

标签: swift realm

我定义了一个名为User的类并将它设置为primaryKey'userId',如下所示:

class User: Object {

    var userId = 0
    var name = "haha"

    override static func primaryKey() -> String? {
        return "userId"
    }    
}

然后我写了一些数据到defualt数据库,我可以用realm浏览器找到它:

let user = User()
user.userId = 345
user.name = "哈哈"
print("\n\n" + NSHomeDirectory())

try! realm.write { 
    realm.add(user, update: true)
}

但最后我用

let user = realm.objectForPrimaryKey(User.self, key: 345)

它有一个userId = 0和name =“haha”

的对象

ps:我的英语不好,如果可以,请使用中文,thx

2 个答案:

答案 0 :(得分:0)

您使用realm.add(user, update: true),它将更新现有对象。那里没有现有的对象,所以没有任何反应。试试realm.add(user)

答案 1 :(得分:0)

不确定这是否有帮助,但我记得我们需要在var之前添加动态,如下所示:

class User: Object {

dynamic var userId = 0
dynamic var name = "haha"

    override static func primaryKey() -> String? {
        return "userId"
    }    
}