我正在尝试使用代码获取Documents文件夹的路径:
var documentsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory:0,NSSearchPathDomainMask:0,true)
但是Xcode给出了错误:
Cannot convert expression's type 'AnyObject[]!' to type 'NSSearchPathDirectory'
我试图了解代码中的错误。
最佳答案
显然,编译器认为NSSearchPathDirectory:0
是一个数组,并且当然希望使用NSSearchPathDirectory
类型。当然不是有用的错误消息。
但至于原因:
首先,您混淆了参数名称和类型。看一下函数定义:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directory
和domainMask
是名称,您使用的是类型,但无论如何都应将它们留给函数使用。它们主要用于方法中。 这样就剩下了(已针对Swift 2.0更新):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
对于Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]