我已经尝试了许多不同的方式来进行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(和斯威夫特一般),所以它似乎对我来说,这段代码应该工作。我已经在许多地方寻找试图找到一个答案,所以如果它是显而易见的,我很抱歉我错过了它。
4条答案
按热度按时间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 cocoapods
。pod 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指出这一点)。
9jyewag02#
同样的错误已经持续了一个小时,
如果它说它超出了范围,您将错过此行。
6l7fqoea3#
如果该错误发生在swift文件中,并且您在一个包含.swift文件和objective c文件的项目中,那么您可能需要将.h添加到桥接头文件中
ctzwtxfj4#
我在使用多平台应用程序时遇到了这个错误。macOS版本的一切都很好,但iOS版本会出现这个错误。
添加
import CoreData
对于iOS来说似乎是必要的,而对于macOS来说并不需要。