I want to use short form of closure {$0 > 1}
in calls to NSIndexSet
class:
let indexSet: NSIndexSet = getSomeIndexSet()
let filteredIndexSet = indexSet.indexesPassingTest(){$0 > 1}
but it gives me
Cannot invoke 'indexesPassingTest' with an argument list of type '((_) -> _)'
but this works: indexSet.indexesPassingTest(){(i,s) in i > 1}
though type names are still not there.
Is it a bug or am I missing something?
The error message says what you are doing wrong. The argument passed to block are not two different argument rather a single argument which is tuple. So, you will have to access each element in from the tuple.
Based on the comment by Martin R, it seems like closure must match the 2 arguments. So, one can use $0, or $1 or if only one is used then $0 becomes tuple.
The $0.0 means the first item in the tuple which is index.