Rupanya, kompiler berpikir NSSearchPathDirectory:0
adalah sebuah array, dan tentu saja mengharapkan tipe itu NSSearchPathDirectory
sebagai gantinya. Jelas bukan pesan kesalahan yang membantu.
Tetapi untuk alasan:
Pertama, Anda mengacaukan nama dan tipe argumen. Lihatlah definisi fungsi:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directory
dan domainMask
apakah namanya, Anda menggunakan tipenya, tetapi Anda tetap harus membiarkannya untuk fungsi. Mereka digunakan terutama dalam metode.
- Juga, Swift sangat diketik, jadi Anda tidak harus hanya menggunakan 0. Gunakan nilai enum sebagai gantinya.
- Dan akhirnya, ia mengembalikan sebuah array, bukan hanya satu jalur.
Sehingga meninggalkan kita dengan (diperbarui untuk Swift 2.0):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
dan untuk Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]