如何按特定顺序显示数组中的项目?

时间:2017-08-07 14:56:30

标签: ios arrays swift

有些项目基于JSON中的订单,如果它们的bool为真,则需要按特定顺序返回:

"items": {
    "item1": true,
    "item2": true,
    "item3": true,
    "item4": true,
    "item5": true,
    "item6": true
}

然后,这些项目需要在集合视图中按顺序显示相应的图像。将这些项添加到数组后,是否有一种方法可以按正确的顺序获取这些项?

这是我现在使用的功能,它可以工作,但顺序不同:

var appMenuJSON: NSDictionary?
var menuButtonsArray: [String?] = []

func getItems(){
    guard let items = appMenuJSON else {return}            
        for (key, value) in items {
            if let val = value as? Bool, val == true {
                menuButtonsArray.append(key as! String)
            }

}

1 个答案:

答案 0 :(得分:3)

一旦你将JSON解码为NSDictionary,你就无法以与JSON字符串相同的顺序获取项目。

因此,要么使用Array(items).sort再次对条目进行排序(请参阅Sort Dictionary by keys),要么自定义解析JSON数组以获得原始排序。