Ios 使用领域';s在新RLMArray中的非持久性属性
我正在尝试使用具有忽略属性的领域。实际上很像这篇文章Ios 使用领域';s在新RLMArray中的非持久性属性,ios,swift,realm,Ios,Swift,Realm,我正在尝试使用具有忽略属性的领域。实际上很像这篇文章 距离,该距离声明为模型属性,但实际上并未持久化,并临时用于计算和显示 然后我有这样的东西 func calculateDistance(stops:RLMResults) -> RLMArray { let currentLocation = getCurrentLocation() var results:RLMArray = RLMArray(objectClassName: Stop.className())
距离
,该距离声明为模型属性,但实际上并未持久化,并临时用于计算和显示
然后我有这样的东西
func calculateDistance(stops:RLMResults) -> RLMArray {
let currentLocation = getCurrentLocation()
var results:RLMArray = RLMArray(objectClassName: Stop.className())
for (var i = 0; i < Int(stops.count); i++) {
var stop = stops[UInt(i)] as Stop
let stopLocation = CLLocation(latitude: stop.coordinates.latitude, longitude: stop.coordinates.longitude)
let distance = currentLocation.distanceFromLocation(stopLocation)
if kDistanceMeters >= distance {
println("Distance to \(stop.stopName) --> \(distance) m ---- max(\(Int(kDistanceMeters))")
realm.beginWriteTransaction()
stop.distance = Double(distance)
results.addObject(stop)
realm.commitWriteTransaction()
println(stop.distance) // Prints out the distance. It's in the object
}
}
println("Getting the results")
println(results) // Distance property isn't there ...
return results
}
func calculateInstance(停止:RLMResults)->RLMArray{
让currentLocation=getCurrentLocation()
var结果:RLMArray=RLMArray(objectClassName:Stop.className())
对于(var i=0;i=距离{
println(“到\(stop.stopName)-->\(Distance)m----max(\(Int(kDistanceMeters))”)
realm.beginWriteTransaction()
停止。距离=双倍(距离)
结果。添加对象(停止)
realm.commitWriteTransaction()
println(stop.distance)//打印出距离。它在对象中
}
}
println(“获取结果”)
println(results)//距离属性不存在。。。
返回结果
}
基本上,我希望使用这个新的临时results
RLMArray,使用distance
属性,仅在视图中显示我想要的结果。
该属性实际上是在对象上指定的,但一旦在RLMArray中,它就会消失。顺便说一句,我没有收到任何错误
我还在stackoverflow上读到,不应该这样使用被忽略的领域属性。那么,如何正确解决我的问题,将结果放入添加了其他属性的数组?转换为普通对象?现在,您需要创建自己的按最近距离排序的对象数组。您只能在pe上查询我现在就去了