如何重新排序NSMutableDictionaries的NSMutableDictionary

时间:2016-06-08 14:04:53

标签: ios swift dictionary swift2 nsmutabledictionary

在一个带有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放在一个全局var中,另一个名为nsDict的NSMutableDictionary。

我想重新排序我的字典词典,使用["distance"]值,这是在metters中,所以我可以在从较低距离到较高距离的tableView中显示它。我已经堆栈溢出和谷歌搜索了一段时间,但我发现只有dictionary.sort()的例子对我来说没用,因为我使用NSMutableDictionary。找不到NsMutableDictionary的任何示例,并且不太了解apple文档。在另一种语言中,比如php,我会用两个do{}while来做这个但是我无法用swift 2用给定的方法做到这一点。有人可以帮帮我吗?

这是NSMutableDictionaries的NSMutableDictionary这就是为什么我认为解析技术与订购一个NSMutableDictionary不同

1 个答案:

答案 0 :(得分:3)

NSMutatbleDictionary不保留订单(已排序或插入)。你不能对它进行排序。

您需要一种不同的方法,例如使用NSArray排序键。请参阅NSDictionary - Sorting Dictionaries