我尝试使用被忽略的属性对RLMResults
进行排序,但我一直收到此错误'Invalid sort column', reason: 'Column named '(null)' not found.'
以下是我的模特
class Store: RLMObject {
dynamic var key = ""
dynamic var name = ""
dynamic var latitude = 0.0
dynamic var longitude = 0.0
dynamic var distance = 0.0
override class func primaryKey() -> String {
return "key"
}
override class func ignoredProperties() -> [AnyObject] {
return ["distance"]
}
}
这是我正在运行的功能
func sortByDistance(currentLocation: CLLocation) {
stores = Store.allObjects()
let realm = RLMRealm.defaultRealm()
realm.transactionWithBlock { [unowned self] in
for obj in self.stores {
let store = obj as Store
let storeLocation = CLLocation(latitude: store.latitude, longitude: store.longitude)
let distance = currentLocation.distanceFromLocation(storeLocation)
store.distance = distance
}
}
stores = Store.allObjects().sortedResultsUsingProperty("distance", ascending: true)
}
当我尝试println(stores.firstObject().distance)
时,我的控制台会打印默认值0.0
。
非常感谢任何帮助。
答案 0 :(得分:3)
您无法按忽略的属性进行排序。 当您选择忽略属性时,值不会存储在Realm中,因此Realm无法以任何方式使用该属性。因此解决方案是不要忽视它。 从长期来看,特定距离计算将由Realm中的内部查询提供。