当前位置: 首页 > 面试题库 >

Xcode-beta 8.无法创建核心数据

卫开济
2023-03-14
问题内容

我一直在尝试添加核心数据。每次我遇到相同的错误:

error: filename "EntityName +CoreDataClass.swift" used twice: '/Users/userName/Desktop/Development/MyApp/AppName/EntityName +CoreDataClass.swift' and '/Users/userName/Library/Developer/Xcode/DerivedData/AppName-dgwzrmxsetzvtedibxrazuutjwnh/Build/Intermediates/AppName.build/Debug-iphoneos/AppName.build/DerivedSources/CoreDataGenerated/Model/EntityName +CoreDataClass.swift'

我使用以下步骤添加核心数据:
1.New文件/ DataModel;将其保存在我项目的根目录中,
选择Model.xcdatamodeld并添加实体,添加几个属性,保存,编辑/创建NSManagedObjectClass子类。

结果,我在导航器中观察到4个新文件:Model.xcdatamodeld,EntityName +
CoreDataProperties.swift,EntityName + CoreDataClass.swift,
COREDATA_DATAMODELNAME + CoreDataModel.swift

它们的内容: COREDATA_DATAMODELNAME + CoreDataModel.swift:

import Foundation
import CoreData

___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___

EntityName + CoreDataClass.swift:

import Foundation
import CoreData


class EntityName: NSManagedObject {

}

EntityName + CoreDataProperties.swift:

import Foundation
import CoreData

extension EntityName {

    @nonobjc class func fetchRequest() -> NSFetchRequest< EntityName > {
        return NSFetchRequest< EntityName >(entityName: "EntityName");
    }

    @NSManaged var str: String?

}

我尝试过的操作:
1.清理构建,删除DerivedData,删除var / folders的内容,重新启动
2.删除生成的文件,显示在导航器中

我所有的努力都运气不好。
我做错了什么?


问题答案:

NSManagedObject当模型文件使用Xcode 8文件格式时,Xcode
8包括自动的类生成。如果创建自己的子类文件,则将创建重复项。错误消息中的第二个文件DerivedSources,是Xcode自动创建的文件。

如果自动生成的文件可以满足您的需求,那么只需停止创建自己的文件,您就可以了。

如果要创建自己的子类,则可以

  • 将模型文件的“工具版本”设置为Xcode 7.3或更早版本以禁用所有代码生成(这似乎对实际文件内容没有任何意义),或者
  • 通过将实体的“ Codegen”设置设置为“ Manual / None”,分别禁用每个实体的自动生成。


 类似资料:
  • 每次CodeIgniter运行时都有很多基础类作为核心框架的一部分被自动初始化.但你也可以使用经过你修改的类来替换甚至扩展这些原始的核心系统类. 大多数用户一般不会有这种需求,但对于那些想较大幅度的改变CodeIgniter的人来说,我们依然提供了替换和扩展核心系统类的选择. 注意:  改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么. 系统类清单 以下是系统核心文件的清单

  • 每次 CodeIgniter 运行时,都有一些基础类伴随着核心框架自动的被初始化。但你也可以使用你自己类来替代这些核心类或者扩展这些核心类。 大多数用户一般不会有这种需求,但对于那些想较大幅度的改变 CodeIgniter 的人来说,我们依然提供了替换和扩展核心类的选择。 注解 改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么。 系统类清单 以下是系统核心文件的清单,它们在

  • 我正在尝试将我的应用程序提交到iTunes Connect。我在(测试飞行)之前提交过它,但在某个时候我的证书已经停止工作。我试图用两种不同的方法更新它们,但没有任何成功。 方法1:在XCode中,我得到一个错误,说开发人员配置文件已经有一个分发证书,并建议我重新设置它。在相同的弹出窗口中重置结果,因此这将进入一个循环,但不起作用。 方法2:如果我在developer portal中手动创建证书和

  • 在AWS文档中,只有关于如何update_thing_shadow的说明。(https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iot-data.html#IoTDataPlane.Client.update_thing_shadow) 我们如何创建阴影? 谢谢

  • 我很难让swashbuckle.aspnetcore(1.0.0)包生成任何输出。我读到swagger.json文件应该写到'~/swagger/docs/v1'。然而,我没有得到任何输出。 我从一个全新的ASP.NET核心API项目开始。我应该提到这是ASP.NET Core2。API可以工作,我可以从values控制器检索值。 我的启动类的配置与本文描述的完全相同(GitHub上的swashb

  • 我正在开发一个利用和的项目。为了在我的程序中使用顶点和片段着色器,我需要使用的最小OpenGL版本是。我检查了OpenGL版本和GLSL版本,结果如下: 我在Linux操作系统上使用Eclipse作为我的C++开发IDE(我使用的这个特定的disdo是PCLinuxOS)。