使用swift 3和Xcode 8 beta对NSManagedObject进行子类化

RFG*_*RFG 19 core-data nsmanagedobject swift3 xcode8

我开始尝试使用swift 3和Xcode 8 beta的Core数据.当我尝试从核心数据模型生成NSManagedObject子类并在编辑器菜单中创建NSManagedObject子类...选项时,Xcode 8 beta生成三个文件,其中一个是_COREDATA_DATAMODELNAME_ + CoreDataModel.swift,其中包含以下内容:

import Foundation
import CoreData

___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___
Run Code Online (Sandbox Code Playgroud)

此外,此文件的内容显示两个警告:

Expressions are not allowed at the top level.
Use of unresolved identifier '___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___'
Run Code Online (Sandbox Code Playgroud)

有没有人面临同样的问题?这个新文件的含义是什么?

谢谢

vad*_*ian 44

它可能与新的自动子类生成(beta)发生冲突,可以在数据模型文件的实体检查器中进行控制.

来自文档(核心数据中有什么新内容)

Xcode自动子类生成

Xcode现在支持NSManagedObject在建模工具中自动生成子类.在实体检查员中:

  • 手动/无是默认和以前的行为; 在这种情况下,您应该实现自己的子类或使用NSManagedObject.
  • 类别/扩展在名为like的文件中生成类扩展 ClassName+CoreDataGeneratedProperties.您需要声明/实现主类(如果在Obj-C中,通过标头扩展可以导入名为ClassName.h).-
  • "类定义"生成名为的子类文件ClassName+CoreDataClass以及为"类别/扩展"生成的文件.

生成的文件放在DerivedData中,并在保存模型后在第一个版本上重建.它们也被Xcode索引,因此命令单击引用并按文件名快速打开.

  • 注意:您也可以在文件检查器中选择可待因的语言,如果您想在Swift中生成.出于某种原因,尽管创建了一个Swift项目,但我的目标是目标C ......然后,这是通用汽车项目迁移的测试版. (5认同)