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) }