【发布时间】:2020-01-23 04:06:05
【问题描述】:
我正在使用 Xcode 11.3.1,并在新项目中选择类定义,例如实体。
我似乎无法引用生成的类。即使在我按下 build 之后
let x = Project()
Use of unresolved identifier 'Project'
【问题讨论】:
-
不确定发生了什么,但如果我更改了核心数据模型并在之后得到一些奇怪的行为,我总是会清理项目并重新构建。
我正在使用 Xcode 11.3.1,并在新项目中选择类定义,例如实体。
我似乎无法引用生成的类。即使在我按下 build 之后
let x = Project()
Use of unresolved identifier 'Project'
【问题讨论】:
无法复制。我直接从模板创建了一个带有核心数据的新香草单一视图应用程序,并制作了一个和你一样的实体:
然后我在视图控制器的viewDidLoad中添加了一行代码;它编译得很好:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let _ = Project()
}
}
在像您这样的情况下,最好考虑一下如何它是如何工作的。代码生成从字面上生成代码。您可以查看该代码,方法是按住 Control 键单击单词 Project 并选择“跳转到定义”:
// Project+CoreDataClass.swift
//
//
// This file was automatically generated and should not be edited.
//
import Foundation
import CoreData
@objc(Project)
public class Project: NSManagedObject {
}
如果您没有看到类似的内容,请退出 Xcode,删除 DerivedData 文件夹的内容,再次打开项目,等待索引完成,然后重试。
如果它仍然不起作用,则在模型编辑器中将 Codegen 切换为 Manual/None 并手动生成文件:
完成对话框后,您将直接在项目导航器中看到生成的文件:
到那时你的项目肯定会编译的!
【讨论】: