如何在 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 的嵌入式堆栈视图中设置边距而不会出现约束错误?