一尘不染

从核心数据实体生成Swift模型

swift

Xcode 8更新:

在Xcode 8中,需要转到Core Data Model Editor并显示File Inspector。底部附近是代码生成的选项。选择快速。

编辑 :我找到了从核心数据实体生成Swift模型的解决方案:

在Xcode上:

编辑器 >创建NSManagedOjbect>单击按钮“下一步”>单击按钮“下一步”>选择“快速”语言>单击按钮“创建”


我使用Core Data在Xcode 6 beta上创建了一个新的Swift项目,从而尝试了Swift语言。

当我从核心数据的实体生成模型时,Xcode会创建Objective-C模型。

有没有一种方法可以使用Core Data生成Swift模型而不是Obejctive-C模型?

谢谢 !


阅读 290

收藏
2020-07-07

共1个答案

一尘不染

让我们看一下Objective-C的方式:

Person.h (头文件)

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface Person : NSManagedObject
@property (nonatomic, retain) NSString *name;
@end

Person.m (实施文件)

#import "Person.h"

@implementation Person
@dynamic name;
@end

迅速

Xcode6-Beta中已经包含的文档说:

核心数据在NSManagedObject类的子类中提供了属性的基础存储和实现。在托管对象子类中与Core
Data模型中的属性或关系相对应的每个属性定义之前,添加@NSManaged属性。类似于Objective-C中的@dynamic属性,@
NSManaged属性通知Swift编译器将在运行时提供属性的存储和实现。但是,与@dynamic不同,@NSManaged属性仅可用于Core
Data支持。

因此,这就是我将上述示例重写为Swift的方式(未经测试):

人智

import CoreData

class Person: NSManagedObject {

    @NSManaged var name : NSString

}

根据您的问题,我认为Xcode6中可能还不包含子类的生成功能。在Xcode中创建Cocoa-Project时,是否确定已选择“ Swift”作为编程语言?

2020-07-07