2016-06-07 77 views
1

我定义一个类命名为用户设置对象是PrimaryKey的“用户id”这样的:境界objectForPrimaryKey无法找到我的数据库

class User: Object { 

    var userId = 0 
    var name = "haha" 

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

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

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) 

它得到了一个对象,具有用户id = 0第二名称=“哈哈”

PS:我的英语不是很好,请你可以用中国的,THX

回答

0

不知道这是否帮助,但我记得我们需要VAR之前添加动态如下:

class User: Object { 

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

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

thx,我也找到并修复它 – minbaba

0

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

+0

THX,我使用的境界浏览器中看到的数据库和对象肯定存在。 – minbaba