По-видимому, компилятор считает, что NSSearchPathDirectory:0
это массив, и, конечно, он ожидает тип NSSearchPathDirectory
. Конечно, не полезное сообщение об ошибке.
Но что касается причин:
Во-первых, вы путаете имена и типы аргументов. Взгляните на определение функции:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directory
и domainMask
это имена, вы используете типы, но вы все равно должны оставить их для функций. Они используются в основном в методах.
- Кроме того, Swift строго типизирован, поэтому вы не должны просто использовать 0. Вместо этого используйте значение enum.
- И, наконец, он возвращает массив, а не только один путь.
Так что это оставляет нас (обновлено для Swift 2.0):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
и для Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]