ios – 复合主键域/ swift

我是新来的迅速和领域.我想要一个复合主键,当我尝试这样的东西:
class DbLocation : Object {
 dynamic var id = 0
 dynamic var tourId = 0

 dynamic var uuid : String  {
    return "\(id)\(tourId)"
 }

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

我收到这个错误
‘主键属性’uuid’不存在于对象’DbLocation’

任何人都可以通过示例来帮助我创建一个复合主键?

解决方法

这应该给你答案:
class DbLocation: Object {
    dynamic var id = 0
    dynamic var tourId = 0

    func setCompoundID(id: Int) {
        self.id = id
        compoundKey = compoundkeyvalue()
    }

    func setCompoundTourId(tourId: Int) {
        self.tourId = tourId
        compoundKey = compoundkeyvalue()
    }

    dynamic lazy var compoundKey: String = self.compoundkeyvalue()

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

    func compoundkeyvalue() -> String {
        return "\(id)\(tourId)"
    }
}

自定义设置器确保复合键始终被更新,懒惰的关键字确保您第一次访问它,它将从您已经设置的内容派生.

了解更多关于这个话题在this thread这个问题已经被辩论.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...