【问题标题】:How do fix the "Cannot find 'NSFetchRequest' in scope error如何修复“在范围内找不到‘NSFetchRequest’错误
【发布时间】:2020-10-17 12:50:14
【问题描述】:

我尝试以多种不同方式发出 NSFetchRequest,但每次都收到此错误:

“在范围内找不到类型‘NSFetchRequest’”

以下是我尝试过的具体方法:

let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Task")

let fetchRequest: NSFetchRequest<Task> = Task.NSFetchRequest()

let fetchRequest = Task.fetchRequest() as! NSFetchRequest<Task>

知道为什么这会给我这个错误吗?我知道这不太可能;很简单,但我在 Xcode 12 测试版上,这可能是 Xcode 的错误吗?我学习了一个教程,因为我刚刚学习 SwiftUI(和一般的 Swift),所以在我看来,这段代码应该可以工作。我已经在很多地方寻找答案,所以如果很明显,我很抱歉我错过了。

【问题讨论】:

  • 您是否已将import CoreData 添加到您的文件中?
  • 做到了。我觉得很愚蠢,但至少我在学习。有趣的是,本教程忽略了该步骤。非常感谢!
  • 别难过。如果教程没有显示它,那么对于学习者来说这不是一个容易的飞跃。享受您的旅行:-)

标签: arrays swift xcode nsfetchrequest


【解决方案1】:

在范围内找不到 *

您的代码中可能出现此错误的原因有多种。

  1. 您没有导入框架。
  2. 如果您使用的是 cocoapods,则可能未安装 pod。
  3. 您打开的是 .xcodeproj 文件而不是 .xcworkspace 文件(如果您使用的是 cocoapods)。
  4. 变量不存在。
  5. 如果文件未添加到目标

解决错误 #1

如果是第一个选项,则需要查找对象/方法使用哪个框架。如果它是一个外部框架(Xcode 未附带),最好查看您从哪个网站获得代码/如果您从 GitHub 获得代码,请联系开发人员。

解决错误 #2

要在您的 Xcode 项目中安装 cocoapods,您需要打开一个新的终端窗口。在那里,您需要导航到您的 Xcode 项目。为此,只需输入cd /path/to/your/xcodeproject。然后你可以输入pod init。如果出现-bash: pod: command not found 的错误,则说明 cocoapods 没有安装。要安装它,只需输入sudo gem install cocoapods。然后pod init 应该可以正常工作。此命令创建一个名为Podfile 的文件。打开它并添加pod 'name-of-your-pod'。保存并关闭文件。回到终端,输入pod install。现在这将需要一些时间,具体取决于 pod 的大小。完成后,应该有一个 .xcworkspace 文件。从现在开始,您需要打开它而不是标准的 .xcodeproj 文件。

解决错误 #3

如果您使用的是 cocoapods,这些 pods 仅在您打开 .xcworkspace 文件时由 Xcode 使用 - 只需打开它,您就可以开始使用了!

解决错误 #4

您忘记创建要访问的变量。要创建它,只需键入var myVar = "myString",如果您想更改它,或者将var 替换为let,如果它永远不会更改。您还需要将"myString" 替换为您想要的值。另一个原因可能是您在闭包内部定义了要访问的变量,这意味着无法从外部访问它。为避免这种情况,请在闭包之前定义变量。

解决问题 #5

为了让 Xcode 在构建您的应用程序时知道要包含哪些内容,它使用了所谓的“目标”。如果您的文件未添加到任何目标,编译器将无法找到该文件。要将文件添加到目标,请选择文件,然后在右侧窗格中,选择 Target Membership -> (YourAppName)。重建项目应该可以解决问题(感谢@Sravan 指出这一点)。

【讨论】:

  • #5,如果文件未添加到目标。确保将文件添加到相应的目标。您也可以在 Build Phases 中进行检查。
  • #5 它更早地工作,但在项目文件的错误合并之后。发生此问题:)
【解决方案2】:

同样的错误已经持续了大约一个小时,

`import CoreData`

如果它说它超出范围,你会错过这一行。

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多