我需要帮助。虽然转换从Swift 2.3 -〉3.2我收到下面的错误。我不能解决这个错误。
下面是我的编码的东西,在那里我面临着一些问题。
错误1:无法将String类型的值转换为指定的NSManagedObjectContext类型**
错误2:无法将URL类型的返回表达式转换为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是单独声明的类,用于处理以下内容:URL_Class
请帮助我。我对iOS非常陌生。无法理解这种类型的错误。
2条答案
按热度按时间laik7k3q1#
let filePath: String = (urlPath as NSString).appendingPathComponent(name)
应读作
let filePath: String = (urlPath as NSString).appendingPathComponent(name)
个x0fgdtte2#
错误2:
URL
没有任何使用context:
的构造函数。请尝试改用init(fileURLWithPath:)
(它需要一个字符串,因此您需要将filePath设置为字符串的示例,而不是NSManagedObject)。请参阅Apple here网址上的官方文档。
编辑
由于您要返回自定义URL对象(NSManagedObject的子类),因此需要更改函数的返回类型。
从
-> Foundation.URL
到-> URL
。我建议将您的自定义URL子类重命名为其他名称,因为这个名称已经被Apple使用,可能会导致一些命名空间问题(编译器会感到困惑,您会得到错误)。