我有一组字典,我想通过每个字典中的“ 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) } }
您可以使用NSArray的sortUsingDescriptors功能:
NSArray
sortUsingDescriptors
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]]
不是很迅速,但您失去了类型安全性,但这确实起作用。
顺便说一句,您的代码中有很多强制转换,有可能导致应用程序崩溃,您应该考虑改用可选的转换。