Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SwiftUI 2.0 CoreData问题与新项目-';找不到类型';项目';范围内';_Ios_Swift_Core Data_Swiftui - Fatal编程技术网

Ios SwiftUI 2.0 CoreData问题与新项目-';找不到类型';项目';范围内';

Ios SwiftUI 2.0 CoreData问题与新项目-';找不到类型';项目';范围内';,ios,swift,core-data,swiftui,Ios,Swift,Core Data,Swiftui,[编辑]我希望苹果能修复明显的bug。解决方案是清除缓存,关闭并重新打开Xcode 我在Xcode测试版上,开始了一个新的项目,没有写一行代码,我已经得到了一个错误。我在网上找不到任何东西。也许这太新了 在新版本的Xcode中,我选择了新项目 然后勾选包含核心数据的方框 如果我不勾选这个框,我会得到通常的带有“hello world”的Xcode SwiftUI模板,但勾选核心数据框,我会从苹果那里得到更多的模板代码,而且不会碰任何东西,也不会更改任何一行代码,我会收到编译它的错误消息 错

[编辑]我希望苹果能修复明显的bug。解决方案是清除缓存,关闭并重新打开Xcode

我在Xcode测试版上,开始了一个新的项目,没有写一行代码,我已经得到了一个错误。我在网上找不到任何东西。也许这太新了

在新版本的Xcode中,我选择了新项目

然后勾选包含核心数据的方框

如果我不勾选这个框,我会得到通常的带有“hello world”的Xcode SwiftUI模板,但勾选核心数据框,我会从苹果那里得到更多的模板代码,而且不会碰任何东西,也不会更改任何一行代码,我会收到编译它的错误消息

错误为:“无法在范围中找到项”

非常令人沮丧,尤其是因为我的所有教程都是从经典的“AppDelegate”文件配置开始的。。而新的SwiftUI是“通用的”

我检查了文件
.xcdatamodeld
,它看起来很好,有“Item”实体。为什么它不编译

所以我现在不知所措,是否有解决方案,或者这是一个bug,需要等待苹果发布修复程序。如果是这样,我不需要开始一个新的项目,直到那时

PS今天,我用CMD-ALT-SHIFT-K清理了缓存,关闭了Xcode,从模拟器中删除了应用程序,重新打开,重建,它确实编译了。。但是模拟器里什么都没有!我们正在进步!我仍然没有更改一行代码。一切都是苹果的模板


正常的Xcode清除对我有效:

  • 清理生成文件夹(shift+command+k)
  • 完全关闭Xcode
  • 删除“DerivedData”内容(/Library/Developer/Xcode/DerivedData)
  • 重试(运行Xcode&build)

  • 对于一个全新的项目,请按Command+B进行构建,这样就可以了。

    我没有发现任何其他答案对我有用,但我找到的是:

    • 正在打开(ProjectName).xcdatamodel
    • 向Item实体添加属性并不重要,我只是添加了“String”类型的“foo”
    • Cmd-B将建立 (然后可以自由删除新属性)

    首先,这不是应用程序的问题,而是预览的问题。你的应用程序在模拟器上正常工作。出现白色屏幕是因为您需要使用NavigationView()包装列表以查看“添加和编辑”按钮。看看这个答案:

    之后,您将在模拟器上看到添加和编辑按钮。 但是你也必须修复预览。它不起作用,因为你有一个空的实体,你需要模拟它。 转到persistence.swift,您应该添加与我类似的for循环,以便在preview varable中创建模拟项:

    static var preview: PersistenceController = {
        let result = PersistenceController(inMemory: true)
        let viewContext = result.container.viewContext
        for _ in 0..<10 {
            let newItem = Item(context: viewContext)
            newItem.timestamp = Date()
        }
        do {
            try viewContext.save()
        } catch {
            // Replace this implementation with code to handle the error appropriately.
            // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
            let nsError = error as NSError
            fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
        }
        return result
    }()
    
    在那之后,它应该工作得很好,希望能有所帮助。
    我不知道为什么苹果一开始提供的模板不能正常工作。

    如果您仍然有问题,您可能忘记将
    .xcdatamodel
    文件添加到测试目标


    我遵循了上述建议,使用了Cmd+B,效果很好。它要求我撤销并授权我当前的计算机。

    这是Xcode缓存。。。重新启动,重新打开,重建。我绝对讨厌CoreData。每次我尝试一下,都会发生类似的事情。已经尝试了包括DerivedData删除方法在内的所有方法。什么都不管用。我甚至无法获得苹果公司为您生成的裸体模板。来吧,苹果!是的,我今天遇到了与Xcode 12.3完全相同的问题,我只是完全关闭了Xcode,然后重新启动它,一切正常。即使有错误,我也能够进行构建,但无法在模拟器上运行项目。所以,如果你遇到一个错误,在范围内找不到实体,试着重新启动Xcode。仍然是Xcode版本12.4I中的那个恼人的错误,我希望苹果现在已经修复了它。。。第三步似乎没有必要!
    struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext)
    }