How to find NSDocumentDirectory in Swift?
ios, nsdocumentdirectory, swift
Solution
Apparently, the compiler thinks `NSSearchPathDirectory:0` is an array, and of course it expects the type `NSSearchPathDirectory` instead. Certainly not a helpful error message.
But as to the reasons:
First, you are confusing the argument names and types. Take a look at the function definition:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
- `directory` and `domainMask` are the names, you are using the types, but you should leave them out for functions anyway. They are used primarily in methods.
- Also, Swift is strongly typed, so you shouldn't just use 0. Use the enum's value instead.
- And finally, it returns an array, not just a single path.
So that leaves us with (updated for Swift 2.0):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
and for Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
Problem
I'm trying to get path to Documents folder with code: ``` var documentsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory:0,NSSearchPathDomainMask:0,true) ``` but Xcode gives error: `Cannot convert expression's type 'AnyObject[]!' to type 'NSSearchPathDirectory'` I'm trying to understand what is wrong in the code.