显然,编译器认为NSSearchPathDirectory:0
是一个数组,当然它期望的是类型NSSearchPathDirectory
.当然,这不是一条有用的错误消息.
但至于原因:
首先,您混淆了参数名称和类型.看一下函数定义:
func NSSearchPathForDirectoriesInDomains(
directory: NSSearchPathDirectory,
domainMask: NSSearchPathDomainMask,
expandTilde: Bool) -> AnyObject[]!
directory
和domainMask
是名称,您使用的是类型,但无论如何,您应该将它们保留在函数之外.它们主要用于方法.
- 另外,SWIFT是强类型的,所以您不应该只使用0.请改用枚举的值.
- 最后,它返回一个数组,而不仅仅是单个路径.
因此,我们只剩下(针对SWIFT 2.0进行了更新):
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
对于Swift 3:
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]