Ios 如何修复上下文闭包类型';((字符串,JSON),(字符串,JSON))->;布尔';需要2个参数,但在闭包正文中使用了1个?

Ios 如何修复上下文闭包类型';((字符串,JSON),(字符串,JSON))->;布尔';需要2个参数,但在闭包正文中使用了1个?,ios,swift,closures,swift4,Ios,Swift,Closures,Swift4,我正在将我的代码从swift 3.2转换为swift 4,但我发现此代码有错误 self.arrData = json.sorted{ $0.0.1["chkincount"].doubleValue > $0.1.1["chkincount"].doubleValue }.map { $0.1 } 上下文闭包类型“((String,JSON),(String,JSON))->Bool”需要2个参数,但闭包体中使用了1个参数 如何修复此问题?在排序闭包中,使用$0.0.1更改了$0.1以

我正在将我的代码从swift 3.2转换为swift 4,但我发现此代码有错误

self.arrData = json.sorted{ $0.0.1["chkincount"].doubleValue > $0.1.1["chkincount"].doubleValue }.map { $0.1 }
上下文闭包类型“((String,JSON),(String,JSON))->Bool”需要2个参数,但闭包体中使用了1个参数


如何修复此问题?

在排序闭包中,使用
$0.0.1
更改了$0.1以访问第一个闭包参数,使用
$1.1
访问第二个闭包参数在进行此更改后,所有人都设置为go

self.arrData = json.sorted{ $0.1["chkincount"].doubleValue > $1.1["chkincount"].doubleValue }.map { $0.1 }

你能解释一下为什么这个代码在swift 4中起作用,而上面的代码不起作用吗?@VarunNaharia我已经在我的回答中写道,你还没有访问闭包中的第二个参数
$1
,所以你需要访问它,而不是
$0.1
它是
$1
,从
$0
$1
表示
(String,JSON)
不是
((String,JSON),(String,JSON))
@varunaharia可能是他们在Swift 4中改变了这一点。这回答了你的问题吗?@pkamb我已经得到了我问题的答案,你所指的链接就在我发布我的问题时。