从 Swift 2.3 -> 3.2 转换时,无法将 String 类型的值转换为指定类型 NSManagedObjectContext
Cannot convert value of type String to specified type NSManagedObjectContext, While converting from Swift 2.3 -> 3.2
我需要帮助。从 Swift 2.3 -> 3.2 转换时,我收到以下错误。我无法解决此错误。
以下是我的编码内容,我遇到了一些问题。
Error1 : Cannot convert value of type String to specified type
NSManagedObjectContext**
Error2 : Cannot convert return expression of type URL to return type URL.
class func persistentFileURL(_ name: String, enclosingDirectoryName: String) -> Foundation.URL {
let directoryURL = self.directoryForPersistentStorage(enclosingDirectoryName)
let urlPath = directoryURL.path
let filePath: NSManagedObjectContext = (urlPath as NSString).appendingPathComponent(name) //Error1 : Cannot convert value of type String to specified type NSManagedObjectContext
return URL(context: filePath) // Error2 : Cannot convert return expression of type URL to return type URL.
}
注意:URL 是单独的 Class 声明来处理此问题:URL_Class
请帮助我。我是 iOS 的新手。无法理解此类错误。
let filePath: NSManagedObjectContext = (urlPath as NSString).appendingPathComponent(name)
应该阅读
let filePath: String = (urlPath as NSString).appendingPathComponent(name)
错误2:
URL
没有任何使用 context:
的构造函数。尝试使用 init(fileURLWithPath:)
代替(它需要一个字符串,因此您需要使 filePath 成为字符串的实例而不是 NSManagedObject)。
请参阅 Apple here 上关于 URL 的官方文档。
编辑
鉴于您正在 return 创建自定义 URL 对象(NSManagedObject 的子类),您需要更改函数的 return 类型。
从 -> Foundation.URL
到 -> URL
。我建议将您的自定义 URL 子类重命名为其他名称,因为此名称已被 Apple 使用并且可能会导致一些名称空间问题(编译器会混淆并且您会收到错误)。
我需要帮助。从 Swift 2.3 -> 3.2 转换时,我收到以下错误。我无法解决此错误。
以下是我的编码内容,我遇到了一些问题。
Error1 : Cannot convert value of type String to specified type NSManagedObjectContext**
Error2 : Cannot convert return expression of type URL to return type URL.
class func persistentFileURL(_ name: String, enclosingDirectoryName: String) -> Foundation.URL {
let directoryURL = self.directoryForPersistentStorage(enclosingDirectoryName)
let urlPath = directoryURL.path
let filePath: NSManagedObjectContext = (urlPath as NSString).appendingPathComponent(name) //Error1 : Cannot convert value of type String to specified type NSManagedObjectContext
return URL(context: filePath) // Error2 : Cannot convert return expression of type URL to return type URL.
}
注意:URL 是单独的 Class 声明来处理此问题:URL_Class
请帮助我。我是 iOS 的新手。无法理解此类错误。
let filePath: NSManagedObjectContext = (urlPath as NSString).appendingPathComponent(name)
应该阅读
let filePath: String = (urlPath as NSString).appendingPathComponent(name)
错误2:
URL
没有任何使用 context:
的构造函数。尝试使用 init(fileURLWithPath:)
代替(它需要一个字符串,因此您需要使 filePath 成为字符串的实例而不是 NSManagedObject)。
请参阅 Apple here 上关于 URL 的官方文档。
编辑
鉴于您正在 return 创建自定义 URL 对象(NSManagedObject 的子类),您需要更改函数的 return 类型。
从 -> Foundation.URL
到 -> URL
。我建议将您的自定义 URL 子类重命名为其他名称,因为此名称已被 Apple 使用并且可能会导致一些名称空间问题(编译器会混淆并且您会收到错误)。