Aparentemente, el compilador piensa que NSSearchPathDirectory:0
es una matriz y, por supuesto, espera el tipo en su NSSearchPathDirectory
lugar. Ciertamente no es un mensaje de error útil.
Pero en cuanto a las razones:
Primero, está confundiendo los nombres y tipos de argumentos. Eche un vistazo a la definición de la función:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directory
y domainMask
son los nombres, está utilizando los tipos, pero de todos modos debe dejarlos fuera para las funciones. Se utilizan principalmente en métodos.
- Además, Swift está fuertemente tipado, por lo que no deberías usar solo 0. Usa el valor de la enumeración.
- Y finalmente, devuelve una matriz, no solo una sola ruta.
Eso nos deja con (actualizado para Swift 2.0):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
y para Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]