一尘不染

按键值对字典数组排序

swift

我有一组字典,我想通过每个字典中的“ itemName”键按字母顺序对它们进行排序。如何在Swift中执行此操作?

我想对itemsArray进行排序。

let array = PFUser.currentUser()?.objectForKey("Collections") as! [[String : AnyObject]]
        let collectionsDictionary = array[0]
        itemsArray = collectionsDictionary[self.title!] as! [[String : AnyObject]]


        for dictionary in itemsArray {
            itemNames.append(dictionary["itemName"] as! String)
            itemUPC.append(dictionary["UPC"] as! String)
            pricePaid.append(dictionary["pricePaid"] as! String)
            currentPrice.append(dictionary["currentPrice"] as! String)
            model.append(dictionary["model"] as! String)
            if (dictionary["image"] != nil) {
                imagesArray.append(dictionary["image"] as! PFFile)
            } else {
                imagesArray.append(nil)
            }
        }

阅读 335

收藏
2020-07-07

共1个答案

一尘不染

您可以使用NSArraysortUsingDescriptors功能:

let sortedArray = (itemsArray as NSArray).sortedArrayUsingDescriptors([NSSortDescriptor(key: "itemName", ascending: true)]) as [[String:AnyObject]]

迅捷 > 3

let sortedArray = (itemsArray as NSArray).sortedArray(using: [NSSortDescriptor(key: "itemName", ascending: true)]) as! [[String:AnyObject]]

不是很迅速,但您失去了类型安全性,但这确实起作用。

顺便说一句,您的代码中有很多强制转换,有可能导致应用程序崩溃,您应该考虑改用可选的转换。

2020-07-07