一尘不染

即使类型是内部的,并且存在于同一模块中,在Swift中也“使用未声明的类型”

swift

我的模块中有一个类型:

import Cocoa

class ColoredDotView : NSView {
   ...
}

它被用于许多不同的类中,没有问题:

class EditSubjectPopoverController : NSObject {

    @IBOutlet internal var subjectColorDotView : ColoredDotView!
    ...
}

但是由于 某种原因 ,当我在一个 特定的 类中使用它时,在类型上出现编译错误:

class EditTaskPopoverController : NSObject {

    @IBOutlet internal var lowPriorityDotView : ColoredDotView! // Error here
    @IBOutlet internal var medPriorityDotView : ColoredDotView! // And here...
    @IBOutlet internal var highPriorityDotView : ColoredDotView! // And here...
    ...
}

编译错误是:

EditTaskPopoverController.swift:15:49:使用未声明的类型’ColoredDotView’

我不明白。这是文件中的第一个编译错误,其余错误都是第一个的症状。此外, 没有其他文件 存在编译错误。我不明白为什么未声明类型,因为文件位于同一模块中:

在此处输入图片说明

我尝试清理项目,清理生成文件夹并重新启动Xcode,但无济于事。哪些潜在的失误会导致undeclared typeSwift中的编译器错误?


阅读 256

收藏
2020-07-07

共1个答案

一尘不染

ew,终于诊断出来了。 不知何故 ,令人讨厌的Swift文件EditTaskPopoverController.swift处于两个不同的构建阶段。

这是在Compile Sources正确的,与所有其他雨燕的文件,但它 为一些很奇怪的原因,在Copy Bundle Resources阶段以及与所有我的XIB和图像资源一起。

我不知道它是如何到达那里的,但是从额外的构建阶段中删除它可以解决此问题。

2020-07-07