2016年08月04日星期四
- Realm数据库,不支持自增主键怎么搞?直接上干货(我用的是swift,其他语言的可作参考)
<a href="https://github.com/Mqhong/Realm_SimpleExample">代码在这里</a>
import Foundation
import RealmSwift
class Person: Object {
dynamic var id = NSUUID().UUIDString
dynamic var name = ""
dynamic var birthdate = NSDate()
let dogs = List<Dog>()
override static func primaryKey() ->String?{
return "id"
}
}
- 这种方式是使用UUID 每次都生成不会重复的主键,在你新建的时候,就会自动的生成,如果这样生成的主键,重复了的话,请告诉我,因为下面我会介绍第二种。但是这种会比较昂贵~~~~ 是的, 昂贵!
类文件中这么写~
import Foundation
import RealmSwift
class Person: Object {
dynamic var id = 0
dynamic var name = ""
dynamic var birthdate = NSDate()
let dogs = List<Dog>()
override static func primaryKey() ->String?{
return "id"
}
func IncrementaID() -> Int {
let realm = try! Realm()
let RetNext: NSArray = Array(realm.objects(Person).sorted("id"))
let last = RetNext.lastObject
if RetNext.count > 0 {
let valor = last?.valueForKey("id") as? Int
return valor! + 1
} else {
return 1
}
}
}
使用的时候
func Addddd(sender: AnyObject) {
print(#function)
let pp = Person()
pp.id = pp.IncrementaID()
pp.name = #function
rdao.Insert_Realm(person: pp)//这里是调用的方法
}
就是这样了。
网友评论