【发布时间】:2026-02-17 07:00:01
【问题描述】:
我有这样的 JSON 数组
var json = NSArray() // array with json objects
//print json >>
json = (
{
Name = "Alen";
Score = 500;
},
{
Name = "John";
Score = 0;
},
{
Name = "Mark";
Score = 2000;
},
{
Name = "Steve";
Score = 300;
},
{
Name = "Ricky";
Score = 900;
}
)
我可以访问它的对象
(json[0] as! NSDictionary).object(forKey: "Name")
(json[0] as! NSDictionary).object(forKey: "Score")
我想根据分数对这个 JSON 数组进行排序。
我找到了类似的答案
let sortedArray = json.sorted(by: { $0.0 < $1.0 })
报错
“任何”类型的值没有成员“0”
然后我尝试了这个
let sortedArray = (json as! NSDictionary).sorted {(aDic, bDic) -> Bool in
return aDic.key < bDic.key
}
报错了
二元运算符 '
你能指导我在swift 4中根据分数对数组进行排序吗?
【问题讨论】:
-
问题的标题是 Swift 4 并用 Swift 3 标记,奇怪。另外,避免在 Swift 中使用 NSDictionary/NSArra,使用 Swift 字典/数组,事件更好:在 Swift 3 中可用时避免使用 NSStuff。
-
var json到目前为止是 not JSON,它只是NSDictionary的NSArray。正如@Larme 提到的,如果可以的话,你应该避免使用这些人,使用原生 Swift 集合(例如[[String: Int]])。 -
看起来您忘记将字典转换为对象(使用结构或类),这将极大地帮助管理这些数据。您应该避免直接使用 JSON 和字典,最好使用模型对象。
-
对不起,我对 swift 很陌生,我不知道该怎么做..
-
@FaizyZaidy 看看 vadian 的回答。
标签: swift nsarray nsdictionary swift4