我有一个字典数组,我想按每个字典中的“itemName”键按字母顺序对它们进行排序。我怎样才能在斯威夫特做到这一点?
我想对项目数组进行排序。
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)
}
}
大概是这样的,使用sort
:
let sortedArray = itemsArray.sort { $0["itemName"] < $1["itemName"] }
其中“$0”和“$1”分别表示数组中的每个字典及其后继字典。
如果编译器因为不知道该键的值是字符串而抱怨类型,则可以像这样进行强制转换(如@Cristik 在评论中所述):
let sortedArray = itemsArray.sort { ($0["itemName"] as? String) < ($1["itemName"] as? String) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)