小编典典

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

all

我的模块中有一个类型:

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 中的编译器错误?


阅读 78

收藏
2022-08-08

共1个答案

小编典典

呼,终于确诊了。 不知何故 ,有问题的 Swift 文件EditTaskPopoverController.swift处于两个不同的构建阶段。

Compile Sources与所有其他 Swift 文件一起正常,但出于某种非常奇怪的原因,它 Copy Bundle Resources与我所有的 XIB 和图像资源一起处于阶段。

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

2022-08-08