对于Xcode 9中的上下文中的类型查找,“对象”不明确

时间:2017-08-08 10:56:39

标签: ios swift xcode ios11

我想更新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'不明确

在这一行:

func cellIdentifierForObject(object: Object) -> String { ... }

出现此问题是因为我的项目中还有其他一些Object类型。我试图将协议或类名放在名称前面,但我仍然会收到错误。

2 个答案:

答案 0 :(得分:8)

在我的情况下,我有这种歧义,因为该类是在一个swift文件中声明的,并且也是由我的数据模型自动生成的。

如果您已经在swift文件中声明了您的类,那么请确保为其禁用代码生成。

  1. 在xcdatamodeld中选择您的实体
  2. 打开第三个选项卡,数据模型检查器:
    enter image description here
  3. 将Codegen设置为手动/无
    enter image description here

答案 1 :(得分:1)

对我来说,错误的原因是两个不同的Cocoapods的类名称相同。如果要将Pod集成到VC,请尝试清除VC文件顶部的“导入...”行,以删除其中的一些容器。