iOS8,Swift:fileURLWithPath – 缺less参数错误的参数

我正在尝试追加到文件目录使用方法的子目录:

class func fileURLWithPath(path: String) -> NSURL?` 

码:

 let applicationDocumentsDirectory:String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString let storesDirectory:NSURL = NSURL.fileURLWithPath(applicationDocumentsDirectory).URLByAppendingPathComponent("Stores") 

获取错误

在调用中缺less参数“isDirectory”的参数。

我真的不明白,为什么编译器需要这个参数? 它在界面中没有提到?

Thnanx提前

问题是,当链中有可选项时,你试图链接方法。

NSURL.fileURLWithPath(applicationDocumentsDirectory)返回NSURL? types。 当您尝试对其执行方法URLByAppendingPathComponent时,会引发编译器错误。

我知道编译器的错误与真正的原因完全不相关,但这只是当前Swift版本的一个优点。

使用! 打开它,它会正常工作:

 let storesDirectory:NSURL = NSURL.fileURLWithPath(applicationDocumentsDirectory)! .URLByAppendingPathComponent(NFConstants.NFCoreDataStringIdentifiers.CoreDataStoresPathComponent.rawValue) 

当然,强制解包可选是潜在的崩溃,所以更好的使用, if let成语:

 if let baseUrl = NSURL.fileURLWithPath(applicationDocumentsDirectory) { let storeURL = baseUrl.URLByAppendingPathComponent(NFConstants.NFCoreDataStringIdentifiers.CoreDataStoresPathComponent.rawValue) }