如何重新排序 NSMutableDictionaries 的 NSMutableDictionary
how to reorder an NSMutableDictionary of NSMutableDictionaries
在包含 json 数据的循环中,我正在创建一个 NSMutableDictionary 并在其中存储 json 已解析的值:
for j in json {
var jsonValues = NSMutableDictionary()
//Create main value
guard let value = j.valueForKey("value")?.valueForKey("value")! else{
continue
}
//Get name
guard let Name : String = (value.valueForKey("Name")?.valueForKey("en") as? String) else {
continue
}
jsonValues["name"] = Name
//Get geoposition
guard let geoposition = value.valueForKey("geoposition") else {
return
}
//Get lat
if let lat = geoposition.valueForKey("lat") as? String {
jsonValues["lat"] = lat
let flat : Float = (lat as AnyObject).floatValue
//Get lng
if let lng = geoposition.valueForKey("lng") as? String{
jsonValues["lng"] = lng
let flng : Float = (lng as AnyObject).floatValue
let metters : CLLocationDistance = getDistance(flat, flng: flng)
jsonValues["distance"] = floor(metters)
}
}else{}
nsDict.setValuesForKeysWithDictionary(["\(c)" : jsonValues])
c += 1
}
在循环结束时,我将 jsonValues mutableDictionary 放入一个全局变量,另一个 NSMutableDictionary,命名为 nsDict。
我想使用 ["distance"]
值对我的字典重新排序,该值以米为单位,因此我可以在 tableView 中从低到高显示它。我已经用 Whosebuging 和谷歌搜索了一段时间,但我只找到带有 dictionary.sort()
的示例,这对我来说没用,因为我使用的是 NSMutableDictionary。无法找到 NsMutableDictionary 的任何示例并且并不真正理解苹果文档。在另一种语言中,例如 php,我本来可以用两个 do{}while
来做到这一点,但我无法在 swift 2 中用给定的方法做到这一点。有人可以帮助我吗?
这是一个 NSMutableDictionary 的 NSMutableDictionary,这就是为什么我认为解析技术与订购一个 NSMutableDictionary 不同的原因
NSMutatbleDictionary
不保留顺序(排序或插入)。你不能排序。
您需要一种不同的方法,例如使用 NSArray
排序键。参见 NSDictionary - Sorting Dictionaries。
在包含 json 数据的循环中,我正在创建一个 NSMutableDictionary 并在其中存储 json 已解析的值:
for j in json {
var jsonValues = NSMutableDictionary()
//Create main value
guard let value = j.valueForKey("value")?.valueForKey("value")! else{
continue
}
//Get name
guard let Name : String = (value.valueForKey("Name")?.valueForKey("en") as? String) else {
continue
}
jsonValues["name"] = Name
//Get geoposition
guard let geoposition = value.valueForKey("geoposition") else {
return
}
//Get lat
if let lat = geoposition.valueForKey("lat") as? String {
jsonValues["lat"] = lat
let flat : Float = (lat as AnyObject).floatValue
//Get lng
if let lng = geoposition.valueForKey("lng") as? String{
jsonValues["lng"] = lng
let flng : Float = (lng as AnyObject).floatValue
let metters : CLLocationDistance = getDistance(flat, flng: flng)
jsonValues["distance"] = floor(metters)
}
}else{}
nsDict.setValuesForKeysWithDictionary(["\(c)" : jsonValues])
c += 1
}
在循环结束时,我将 jsonValues mutableDictionary 放入一个全局变量,另一个 NSMutableDictionary,命名为 nsDict。
我想使用 ["distance"]
值对我的字典重新排序,该值以米为单位,因此我可以在 tableView 中从低到高显示它。我已经用 Whosebuging 和谷歌搜索了一段时间,但我只找到带有 dictionary.sort()
的示例,这对我来说没用,因为我使用的是 NSMutableDictionary。无法找到 NsMutableDictionary 的任何示例并且并不真正理解苹果文档。在另一种语言中,例如 php,我本来可以用两个 do{}while
来做到这一点,但我无法在 swift 2 中用给定的方法做到这一点。有人可以帮助我吗?
这是一个 NSMutableDictionary 的 NSMutableDictionary,这就是为什么我认为解析技术与订购一个 NSMutableDictionary 不同的原因
NSMutatbleDictionary
不保留顺序(排序或插入)。你不能排序。
您需要一种不同的方法,例如使用 NSArray
排序键。参见 NSDictionary - Sorting Dictionaries。