我想知道如何制作一个基于用户和位置之间距离的tableView。我目前的方法是从Parse加载PFObjects(包括1.场地名称,2。场地图像,3。场地位置),然后使用来自PFObjects的信息来制作基于[(名称)的元组,(图像),(距离)]。通过找到当前用户位置和场地位置的距离来确定距离值。
之后我会按距离对元组进行排序(距离<10将是'接近',距离> 10将是'远')。在排除'near'元组和'far'元组后,我会将这些值附加到它们的特定数组(例如nearNameLabel,nearImageLabel)中,并使用这些数组填充表。
到目前为止,由于并发问题(将内容放在正确的线程中),我一直无法正确地将数据填充到指定的数组中。我想知道是否有更好的方法来解决这个问题?谢谢你的时间。
答案 0 :(得分:0)
您可以在对象级别设计它,而不是使用单独的数组。就像创建一个类Venue
,
class Venue: NSObject {
var name : String?
var location : CLLocation?
var image : UIImage?
}
将PFObjects作为场地加载到一个venueArray
。
然后使用用户位置对其进行排序
func sortArray(venueArray : Array<Venue>, myLocation : CLLocation) -> Array<Venue> {
var sortedArray = sorted(venueArray) {
(obj1, obj2) in
// The downcast to Person is only needed if persons is an NSArray or a Swift Array of AnyObjects
let v1 = obj1 as Venue
let v2 = obj2 as Venue
let distance1 = v1.location?.distanceFromLocation(myLocation)
let distance2 = v2.location?.distanceFromLocation(myLocation)
return distance1 < distance2
}
return sortedArray
}