arrays - 如何修复“在范围内找不到‘NSFetchRequest’错误
问题描述
我尝试以多种不同的方式创建 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),所以在我看来,这段代码应该可以工作。我已经在很多地方寻找答案,所以如果很明显,我很抱歉我错过了。
解决方案
在范围内找不到 *
此错误可能出现在您的代码中的原因有多种。
- 你没有导入框架
- 如果您使用的是 cocoapods,则可能未安装该 pod。
- 您打开的是 .xcodeproj 文件而不是 .xcworkspace 文件(如果您使用的是 cocoapods)
- 变量不存在
- 该文件未添加到目标
#1 你没有导入框架。
如果是第一个选项,则需要查找对象/方法使用哪个框架。如果它是一个外部框架(Xcode 未附带),最好查看您从该网站获得代码/如果您从 GitHub 获得代码,请联系开发人员。
#2 如果您使用的是 cocoapods,则可能未安装 pod
要在您的 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 您打开的是 .xcodeproj 文件而不是 .xcworkspace 文件(如果您使用的是 cocoapods)
如果您使用的是 cocoapods,这些 pods 仅在您打开 .xcworkspace 文件时由 Xcode 使用 - 只需打开它,您就可以开始了!
#4 变量不存在
您忘记创建要访问的变量。要创建它,只需键入var myVar = "myString"
是否要更改它,或者如果它永远不会更改,请var
替换为。let
您还需要替换"myString"
为您想要的值。另一个原因可能是您在闭包内定义了要访问的变量,这意味着无法从外部访问它。为避免这种情况,请在关闭之前定义您的变量。
#5 文件未添加到目标
为了让 Xcode 在构建应用程序时知道要包含哪些内容,它使用了所谓的“目标”。如果您的文件未添加到任何目标,编译器将无法找到该文件。要将文件添加到目标,请选择文件,然后在右侧窗格中,选择 Target Membership -> (YourAppName)。重建项目应该可以解决问题(感谢@Sravan 指出这一点)。
推荐阅读
- apache - 为什么 Apache 在尝试包含来自另一台服务器的 SSI 时会得到 404?
- flex-lexer - 每次调用 `yylex()` 都会为输入生成一个标记还是所有标记?
- python-3.x - 如何在“后台”中运行函数
- ios - HEREMaps iOS:缩放到特定点
- single-sign-on - RingCentral 更新扩展 API 错误:EXT-413:不允许更改凭据
- python - Python Flask 本地服务器未更新
- nginx - nginx中的图像文件服务器访问被拒绝
- kubernetes - 如何配置 k8s 客户端,以便它可以与 k8s 集群 pod 中的 k8s CRD 通信?
- python - 如何正确使用 cmd.transform_selection()
- peewee - 什么可以替换 playhouse.test_utils 中的 test_database() 函数?