如何在 Xcode 中移动文件而不会导致“在范围内找不到‘文件名’”?

Posted

技术标签:

【中文标题】如何在 Xcode 中移动文件而不会导致“在范围内找不到‘文件名’”?【英文标题】:How to move files in Xcode without causing "Cannot find 'FileName' in Scope"? 【发布时间】:2020-11-17 02:55:12 【问题描述】:

我想让我的项目更有条理,所以我创建了新组并将文件拖到这些组中。我在 Xcode 中做所有这些,而不是 finder 或终端。但是,现在,Xcode 在这些文件中对类的引用旁边显示“Cannot find 'FileName' in Scope”错误。

我该如何解决这个问题?

我尝试构建项目并清理构建文件夹。

【问题讨论】:

【参考方案1】:

我今天在 Xcode 12.2 和 ios 14.2 项目中遇到了同样的问题。我为一个新结构创建了一个文件,在 ViewController 中编写了一些代码来创建该结构的实例,然后为了打扫房间,我移动了该结构的 .swift 文件。那时我看到了错误“在范围内找不到 [type]”。

产品 |清洁构建文件夹并没有解决问题。

关闭和重新打开 Xcode 对我有用。

我不确定最初的清理是否有帮助。

这里有更详细的答案,可能会涵盖您的特定情况: SwiftUI 2.0 CoreData issues with new project - 'Cannot find type 'Item' in scope'

【讨论】:

这个错误如何进入生产环境,并在 .3 版本中持续存在?... 我会知道的。 Visual Studio 也有它的问题,但我没有足够的 XCode 经验知道会发生什么。【参考方案2】:

我今天使用 Xcode 12.3 (12C33) 修复了一个类似的问题:


解决方案

    从 Xcode 中删除了受影响的文件(不删除它们)

    尝试在选择创建文件夹引用选项的情况下添加文件

    发现这个操作产生了Cannot find 'type' in scope错误

    通过删除文件引用解决了错误,并在将文件复制回项目时选择了创建组选项。

顺便说一句 - 我发现这些方法在使用“添加文件”选项或将文件/文件夹拖到项目中时有效。

【讨论】:

【参考方案3】:

我找到了一些“hack”来修复它。

假设您想将文件夹 Models 移动到您的项目中。打开 AppCode 并使用 IDE 工具创建 Model 组。然后打开XCode,选择Model文件夹并执行Add files to "Model"动作。在我的情况下它成功了。

据我了解,问题出在 forlders 上,而不是文件上。

【讨论】:

以上是关于如何在 Xcode 中移动文件而不会导致“在范围内找不到‘文件名’”?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode ViewController 显示在范围内找不到“支付”

尽管在类中声明了变量,但无法在范围内找到

如何在 Xcode 的嵌入式堆栈视图中设置边距而不会出现约束错误?

如何在 Xcode 中移动 HealthKit 的 .entitlements 文件

XCode 模板:移动 AppDelegate

Xcode如何在预览(Preview)调试中避免与SwiftUI正常运行时环境不一致导致的崩溃