2017-02-27 105 views
0

我是新来的核心数据,我想创建一个事件的数据模式。我有两个实体,如何在核心数据中创建数据模型?

实体1:事件具有属性eventName,eventId和eventTime。 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”,因为它非常简单直接。我的问题是,

  1. 如何创建“实体2”中的数据模型属性
  2. 如何分析它的JSON值,存储和
  3. 如何创建两个实体之间的关系。

任何帮助?

+0

请先阅读:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/KeyConcepts.html#//apple_ref/doc/uid/TP40001075-CH30-SW1 –

回答

0

如何在数据模型中创建“实体2”属性?

为此,您需要先创建另一个名为EventID的实体。添加一个名为id的属性并使其类型为Integer32。之后,通过点击关系部分中的“+”,从Entity2EventID之间创建“多对多”关系。这种类型的问题同时回答您的第三个问题。下面是你应该有什么样的图片:

enter image description here

请注意,您应该选择“一对多”上有正确的“类型”属性。您还应该考虑设置其他属性。

如何解析JSON值并存储它?

如果您使用SwiftyJSON,这应该很容易。

+0

此答案正确无误,除了我不确定创建单独的'EventID'实体是否有价值。我将使用单个字符串属性创建第二个实体'Keyword',然后在'Event'和'Keyword'之间建立多对多的关系。 –

+0

@DaveWeston你可以在核心数据中创建多对多关系?我以为我在某个地方看不懂。 – Sweeper

+0

当然你可以:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/HowManagedObjectsarerelated.html#//apple_ref/doc/uid/TP40001075-CH17-SW8 –