'Object' 对于 Xcode 9 中此上下文中的类型查找不明确
'Object' is ambiguous for type lookup in this context in Xcode 9
我想为 iOS 11 更新我的应用程序,但遇到了这个问题。这是我当前的代码:
protocol DataSourceDelegate: class {
associatedtype Object
func cellIdentifierForObject(object: Object) -> String
func swipeToDeleteObject(object: Object)
}
此协议用于我的视图控制器之一:
extension TransactionsViewController: DataSourceDelegate {
func cellIdentifierForObject(object: Object) -> String {
return "Cell"
}
func swipeToDeleteObject(object: Object) {
object.managedObjectContext?.performChanges {
object.managedObjectContext?.delete(object)
}
}
}
现在我得到 Object
类型的错误:
'Object' is ambiguous for type lookup in this context
这一行:
func cellIdentifierForObject(object: Object) -> String { ... }
对于我来说,出现这个问题是因为我的项目中还有其他一些对象类型。我尝试将协议或 class 名称放在名称前面,但仍然出现错误。
在我的例子中,我有这种歧义,因为 class 是在 swift 文件中声明的,并且也是由我的数据模型自动生成的。
如果您已经在 swift 文件中声明了 class,请确保为它禁用代码生成。
- Select 您在 xcdatamodeld 中的实体
- 打开第三个选项卡,数据模型检查器:
- 将 Codegen 设置为 Manual/None
对我来说,错误的原因是两种不同的 Cocoapods 的 Class 同名。如果您要将 pods 集成到 VC,请尝试通过清除 VC 文件顶部的 'Import ...' 行来删除其中的一些内容。
我想为 iOS 11 更新我的应用程序,但遇到了这个问题。这是我当前的代码:
protocol DataSourceDelegate: class {
associatedtype Object
func cellIdentifierForObject(object: Object) -> String
func swipeToDeleteObject(object: Object)
}
此协议用于我的视图控制器之一:
extension TransactionsViewController: DataSourceDelegate {
func cellIdentifierForObject(object: Object) -> String {
return "Cell"
}
func swipeToDeleteObject(object: Object) {
object.managedObjectContext?.performChanges {
object.managedObjectContext?.delete(object)
}
}
}
现在我得到 Object
类型的错误:
'Object' is ambiguous for type lookup in this context
这一行:
func cellIdentifierForObject(object: Object) -> String { ... }
对于我来说,出现这个问题是因为我的项目中还有其他一些对象类型。我尝试将协议或 class 名称放在名称前面,但仍然出现错误。
在我的例子中,我有这种歧义,因为 class 是在 swift 文件中声明的,并且也是由我的数据模型自动生成的。
如果您已经在 swift 文件中声明了 class,请确保为它禁用代码生成。
- Select 您在 xcdatamodeld 中的实体
- 打开第三个选项卡,数据模型检查器:
- 将 Codegen 设置为 Manual/None
对我来说,错误的原因是两种不同的 Cocoapods 的 Class 同名。如果您要将 pods 集成到 VC,请尝试通过清除 VC 文件顶部的 'Import ...' 行来删除其中的一些内容。