Swift 4方法链接

问题描述:

在我看来,Swift 4方法链接存在问题,或者我完全错过了某些东西。例如下面的代码可以完美运行:Swift 4方法链接

class test { 
    let id = 10 
} 

var dict: [Int: test] = [10: test()] 

let filtered = dict.filter({ $0.value.id > 10 }) 
let sorted = filtered.sorted(by: {$0.value.id > $1.value.id }) 

可惜,这是不工作...

let filteredAndSorted = dict.filter({ $0.value.id > 10 }).sorted(by: {$0.value.id > $1.value.id }) 

我失去了什么......的错误是:不明确使用“过滤器”

+0

以前的工作方式有所不同吗? –

+0

是的,它的工作方式如下:'let filteredAndSorted = dict.filter({$ 0.1.id> 10})。sorted(by:{$ 0.1.id> $ 1.1.id})' –

+0

令人惊讶的是,不要链接或链接这些方法。 –

要解决您可以添加的模糊性:
(dict.filter({ $0.value.id > 10 }) as Dictionary).sorted ...

+0

(dict.filter({$ 0.value.id> 10})as Array).sorted ... or Array((dict.filter({$ 0.value.id> 10}))。sorted ... should work太:-)。这很可能,为什么编译器无法决定... – user3441734

+0

OFFTOPIC:@TrevörAnne Denise。你可以看看[链接](https://stackoverflow.com/questions/46394748/xcode-9-compiled-app-with-unusual-behaviour) –