swift 如何修复“无法在范围中找到”NSFTetchRequest“”错误

yi0zb3m4  于 2022-12-22  发布在  Swift
关注(0)|答案(4)|浏览(199)

我已经尝试了许多不同的方式来进行NSFTetchRequest,每次我得到这个错误:
“在作用域中找不到类型”NSFTetchRequest“”
以下是我尝试过的具体方法:

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

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

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

你知道为什么会出现这个错误吗?我知道这不太可能;很可能,但我在Xcode 12测试版,这可能是一个错误的Xcode?我遵循了教程,因为我只是学习SwiftUI(和斯威夫特一般),所以它似乎对我来说,这段代码应该工作。我已经在许多地方寻找试图找到一个答案,所以如果它是显而易见的,我很抱歉我错过了它。

5lhxktic

5lhxktic1#

在范围内找不到*

代码中可能出现此错误的原因有多种。
1.您没有导入框架
1.如果您使用的是cocoapod,则可能未安装Pod。
1.您打开了.xcodeproj文件而不是.xcworkspace文件(如果您使用的是cocoapod)
1.变量不存在
1.文件未添加到目标

#1您没有导入框架。

如果是第一种情况,你需要查找对象/方法使用的是哪个框架,如果是外部框架(Xcode没有附带),最好查看你从哪个网站获得代码,如果你从GitHub获得代码,请联系开发者。

#2如果您使用cocopod,则可能未安装Pod

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

#3您打开的是.xcodeproj文件,而不是.xcworkspace文件(如果您使用的是cocopod)

如果您使用的是cocopod,那么只有在您打开.xcworkspace文件时,Xcode才会使用这些pod--打开它就可以了!

#4变量不存在

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

#5文件未添加到目标

为了让Xcode知道在构建应用时要包含什么,它使用了所谓的“目标”。如果你的文件没有添加到任何目标,编译器将无法找到该文件。要将文件添加到目标,请选择该文件,然后在右侧窗格中选择Target Membership -〉(YourAppName)。重建项目应该可以修复这个问题(感谢@Sravan指出这一点)。

9jyewag0

9jyewag02#

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

import CoreData

如果它说它超出了范围,您将错过此行。

6l7fqoea

6l7fqoea3#

如果该错误发生在swift文件中,并且您在一个包含.swift文件和objective c文件的项目中,那么您可能需要将.h添加到桥接头文件中

ctzwtxfj

ctzwtxfj4#

我在使用多平台应用程序时遇到了这个错误。macOS版本的一切都很好,但iOS版本会出现这个错误。
添加import CoreData对于iOS来说似乎是必要的,而对于macOS来说并不需要。

相关问题