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

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

庞安晏
2023-03-14
问题内容

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模型?

谢谢 !


问题答案:

让我们看一下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”作为编程语言?



 类似资料:
  • 本文向大家介绍core-data 向核心数据模型添加实体,包括了core-data 向核心数据模型添加实体的使用技巧和注意事项,需要的朋友参考一下 示例 首先,重要的是要了解核心数据模型是*.xcdatamodeld文件。您会注意到您没有实体。您将必须自己创建一个。在Xcode的底部,您会注意到一个按钮,上面写着“添加实体”,然后在导航器区域中将有一个新实体供您在项目上使用。

  • 问题内容: 我正在尝试从现有的空数据库中生成symfony2中的实体(相当大,从头开始创建实体确实很痛苦)。不幸的是,我遇到了很大的问题。 当我尝试调用以下命令时(在Windows上如果发生任何更改): 我收到以下消息: 没有要处理的元数据类。 发布之前,我已经: 验证我的配置正常(我可以连接到数据库), 我的捆绑软件已创建,上面指定的路径有效 当我尝试转换为xml / yml时,与尝试生成注释映

  • 我有生成Hibernate实体的mysql db,现在我需要从这些实体生成内存数据库进行测试。我在试图运行我的单元测试时遇到了这个错误。 /***主]o.h.发动机。jdbc。spi。SqlExceptionHelper:SQL错误:42102,SQLState:42S02 2016-02-16 18:10:47.864错误29758---[main]o.h.engine。jdbc。spi。Sql

  • 问题内容: 不幸的是,新的Core Data语义使我发疯。我之前的问题有一个干净的代码,因为头文件的自动生成不正确,因此无法正常工作。现在,我继续删除对象的工作。我的代码似乎很简单: 我用代替进行了“硬”调试,它向我展示了正确的对象。所以我只需要删除它。 PS没有。现在NSManagedContext只有 问题答案: 在您的情况下,提取的结果是托管对象 的 数组,因此您可以枚举该数组并删除所有匹配

  • 问题内容: 对于如何迅速删除所有核心数据,我有些困惑。我创建了一个带有链接的按钮。单击按钮后,我将看到以下内容: 然后,我想出了各种方法来尝试删除所有核心数据内容,但似乎无法正常工作。我已经使用removeAll从存储的数组中删除,但是仍然不能从核心数据中删除。我假设我需要某种类型的for循环,但是不确定如何从请求中进行。 我尝试应用删除单行的基本原理 但是,这样做的问题是,当我单击按钮时,我没有

  • 为了更新核心数据中的数据(当核心数据中已经有数据时),我删除了所有数据,然后重新插入数据。但我不知道为什么会发生合并冲突。我对核心数据还不熟悉,所以我也搞不清楚它到底出了什么问题。我想我需要更改我的deleteAll函数,但我不知道该更改什么。 代码如下。 我可以使用saveContext来保存核心数据,但我也需要更改位置,并且在重新启动后它不起作用。重新启动后,元素的顺序就像我第一次设置的一样。