如何在 Core Data 中创建数据模型?
Posted
技术标签:
【中文标题】如何在 Core Data 中创建数据模型?【英文标题】:How to create a data model in Core Data? 【发布时间】:2017-02-27 12:57:23 【问题描述】:我是核心数据的新手,我想为事件创建一个数据模式。我有两个实体,
实体 1:具有属性 eventName、eventId 和 eventTime 的 Event。 JSON 的样子,
"eventName": "Dance",
"eventId": 113,
"eventTime": 10-10-2017
,
"eventName": "Painting",
"eventId": 113,
"eventTime": 10-10-2017
,
........
........
"eventName": "Swimming",
"eventId": 111,
"eventTime": 10-10-2017
实体 2. EventKeywordsAndIds 带有属性关键字和 eventIds。 JSON 的样子,
"keyword": "aaa",
"eventIds": [
119,
111,
112,
116
]
,
"keyword": "aab",
"eventIds": [
114,
183,
111,
033,
113
]
我轻松地创建了“实体 1”,因为它非常简单直接。我的问题是,
-
如何在数据模型中创建“Entity 2”属性
如何解析 JSON 值并存储在其中和
如何在两个实体之间建立关系。
有什么帮助吗?
【问题讨论】:
先阅读:developer.apple.com/library/content/documentation/Cocoa/… 【参考方案1】:如何在数据模型中创建“Entity 2”属性?
为此,您需要先创建另一个名为EventID
的实体。添加一个名为id
的属性并将其设为Integer32
类型。之后,通过单击“关系”部分中的“+”来创建从Entity2
到EventID
的“对多”关系,这同时回答了您的第三个问题。这是您应该拥有的图片:
请注意,您应该为右侧的“类型”属性选择“对多”。您还应该考虑设置其他属性。
如何解析JSON值并存储在其中?
如果你使用 SwiftyJSON,这应该很容易。
【讨论】:
这个答案是正确的,但我不确定创建一个单独的EventID
实体是否有价值。我将使用单个字符串属性创建第二个实体Keyword
,然后在Event
和Keyword
之间建立多对多关系。
@DaveWeston 您可以在核心数据中创建多对多关系吗?我以为我在读不到的地方读到了。
当然可以:developer.apple.com/library/content/documentation/Cocoa/…以上是关于如何在 Core Data 中创建数据模型?的主要内容,如果未能解决你的问题,请参考以下文章
controllerDidChangeContent:每次在 Core Data 中创建 ManagedObject 时调用