我使用RealmSwift为我的新的应用程序。 我的领域类有两个主键。 只是一个例子,我有一个领域模型(产品)是这样的: -
class Product: Object, Mappable {
dynamic var id: String? = nil
dynamic var tempId: String? = nil
dynamic var name: String? = nil
dynamic var price: Float = 0.0
dynamic var purchaseDate: Date? = nil
required convenience init?(map: Map) {
self.init()
}
//I want to do something like this
override static func primaryKey() -> String? {
return "id" or "tempId"
}
func mapping(map: Map) {
id <- map["_id"]
tempId <- map["tempId"]
name <- map["name"]
price <- map["price"]
purchaseDate <- (map["purchaseDate"], DateFormatTransform())
}
所以我创造了我的设备的领域对象,并存储到数据库的境界与主键tempId
,作为实际的主键是id
,这是生成主键的服务器只报告同步之后到来。 所以,当我送多份报告与这些服务器tempId
服务器响应我回来了实际的id
与每个映射tempId
。 正如报告不仅从我身边创造,所以我不能让tempId作为主键。 我想到的Compound primary key
,但它不会解决问题。
所以我想创建一个主键,例如如果id
是有那么这是主键否则tempId
是主键。
这个怎么做?