Cannot call value of non-function type 'String' Cannot call value of non-function type 'String' ios ios

Cannot call value of non-function type 'String'


The error is telling you that you are trying to call a String instead of a method (struct constructor in your case). You've probably declared a String variable named ILT (uppercase) somewhere else and that's why it fails.

Your posted code works fine so the error must be somewhere else in your code.


Wrap your let statement in if eg:

if let xxx = yyy {   ... do something}


Works:

let works = ["foo", "bar"].first(where: { ($0 == "foo") } )let works = ["foo", "bar"].first(where: { (_ in true) } )

Fails:

let fails = ["foo", "bar"].first(where: { (true) } )// Cannot call value of a non-function type 'String?'

You must be sure to use the parameter ($0 or _ in) in the closure expression.

Use _ in or $0 to discard or reference the parameter. You cannot simple move directly into the closure body and return true or you will receive this (extremely unhelpful) error.