Xcode-beta 8. 无法创建核心数据 [英] Xcode-beta 8. Can't create core data

查看:11
本文介绍了Xcode-beta 8. 无法创建核心数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have been trying to add core data. And every time I got the same error:

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.新建文件/数据模型;将其保存在我的项目的根目录中
选择 Model.xcdatamodeld 并添加实体,添加几个属性,保存,编辑器/创建 NSManagedObjectClass 子类.

I add core data using the following steps:
1.New file/ DataModel; save it in the root dir of my project
select Model.xcdatamodeld and add entity, add several attributes, save, editor/create NSManagedObjectClass Subclass.

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

As a result I observe 4 new files in navigator: Model.xcdatamodeld, EntityName+CoreDataProperties.swift, EntityName +CoreDataClass.swift, _COREDATA_DATAMODELNAME_+CoreDataModel.swift

他们的内容:_COREDATA_DATAMODELNAME_+CoreDataModel.swift:

their content: _COREDATA_DATAMODELNAME_+CoreDataModel.swift:

import Foundation
import CoreData

___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___

实体名称 +CoreDataClass.swift:

EntityName +CoreDataClass.swift:

import Foundation
import CoreData


class EntityName: NSManagedObject {

}

实体名称+CoreDataProperties.swift:

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/文件夹的内容,重新启动
2. 删除生成的文件,在导航器中显示

What I have tried:
1. Clean build, remove DerivedData, delete content of var/folders, restart
2. Delete generated files, displayed in navigator

我所有的努力都不走运.
我做错了什么?

All my efforts were out of luck.
What I am doing wrong?

推荐答案

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

Xcode 8 includes automatic NSManagedObject class generation when the model file uses the Xcode 8 file format. If you create your own subclass files, you're creating duplicates. The second file in the error message, in DerivedSources, is the one that Xcode created automatically.

如果自动生成的文件满足您的需求,只需停止创建您自己的文件即可.

If the automatically generated files do what you need, just stop creating your own and you'll be OK.

如果你想创建自己的子类,你可以

If you want to create your own subclasses instead, you can either

  • 将模型文件的工具版本"设置为 Xcode 7.3 或更早版本以禁用所有代码生成(这似乎不会改变任何对实际文件内容有意义的内容),或
  • 通过将实体的Codegen"设置设置为手动/无"来分别禁用每个实体的自动生成.

这篇关于Xcode-beta 8. 无法创建核心数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆