我正在尝试使用方法将子目录追加到文档目录:
class func fileURLWithPath(path: String) -> NSURL?`
代码:
let applicationDocumentsDirectory:String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
let storesDirectory:NSURL = NSURL.fileURLWithPath(applicationDocumentsDirectory).URLByAppendingPathComponent("Stores")
获取错误
参数' isDirectory'缺少参数在电话中。
我真的不明白,为什么编译器需要这个参数?界面中没有提到它?
提前Thnanx答案 0 :(得分:1)
问题在于,当链中存在选项时,您正试图链接方法。
NSURL.fileURLWithPath(applicationDocumentsDirectory)
返回NSURL?
类型。当您尝试对其执行方法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)
}