NSProcessInfo.processInfo().environment
возвращает [String : String]
словарь.
Чтобы использовать contains
в словаре, вам необходимо пройти закрытие, а не строку.
Примеры Swift 2:
// This is just to make the answer easier to read
let env = NSProcessInfo.processInfo().environment
Чтобы проверить, если ключи содержат вашу строку:
let result = env.contains { $0.0.containsString("UITESTING") }
или для проверки равенства, например:
let result = env.contains { $0.0 == "UITESTING" }
Для если значения содержат вашу строку:
let result = env.contains { $0.1.containsString("UITESTING") }
или равна:
let result = env.contains { $0.1 == "UITESTING" }
$0
является каждый элемент в словаре, .0
является ключевым и .1
это значение.
Чтобы лучше понять, вот длинная форма синтаксиса:
let result = env.contains { (key, value) in key.containsString("UITESTING") }
И Swift 3, в случае, если кто-то нуждается в этом:
let env = ProcessInfo.processInfo.environment
let result = env.contains { $0.key.contains("UITESTING") }
let result = env.contains { $0.value.contains("UITESTING") }
let result = env.contains { (key, value) in key.contains("UITESTING") }