Ios MagicalRecords从JSON/NSDictionary导入数据。导入关系
我对人际关系有疑问。我必须管理对象类团队和球员。这个队可以容纳许多队员。玩家只能包含一个团队 以下是来自两个请求的JSON: /teamIos MagicalRecords从JSON/NSDictionary导入数据。导入关系,ios,core-data,magicalrecord,Ios,Core Data,Magicalrecord,我对人际关系有疑问。我必须管理对象类团队和球员。这个队可以容纳许多队员。玩家只能包含一个团队 以下是来自两个请求的JSON: /team { "id" : 1, "name" : "Chicago Bulls", "city" : "Chicago" }, { "id" : 2, "name" : "Detroit Pistons", "city" : "Detroit"
{
"id" : 1,
"name" : "Chicago Bulls",
"city" : "Chicago"
},
{
"id" : 2,
"name" : "Detroit Pistons",
"city" : "Detroit"
},
...
/players
{
"id" : 1,
"name" : "D.J. Augustin",
"teamId" : 1
},
{
"id" : 2,
"name" : "Carlos Boozer",
"teamId" : 1
},
...
设置xcdatamodeld实体
Team Entity
atribute | mappedKeyName |
name | name |
teamID | id |
city | city |
Player Entity
atribute | mappedKeyName |
name | name |
playerID | id |
正如你们所看到的,我并没有为玩家实体设置teamId,因为我们需要使用relatedByAttribute键。这里的第一个问题是,我不知道需要在用户信息中为哪个属性、属性或关系设置relatedByAttribute键
编写代码部分
假设我已经得到了由NSDictionary表示的团队JSON。我所做的:
此代码使用团队实体的每个属性的用户信息从NSDictionary导入所有数据。在这一步上,一切都很顺利
Team *team = [Team MR_createEntity];
[team MR_importValuesForKeysWithObject:dictionary];
第二个操作是获取所有玩家,并将他们附加到第一步中已经创建的具体团队,使用您可以在JSON中看到的关键团队ID
我在这一步上做什么。让我们假设我和第一个玩家得到了一本字典
代码与此相同
Player *player = [Player MR_createEntity];
[player MR_importValuesForKeysWithObject:dictionary];
但是这种关系不会起作用,MagicalRecords也不会将我的球员与具体球队联系起来,因为我没有像我说的那样设置relatedByAttribute键。我真的需要帮助,因为我理解导入的基本思想,但不理解需要在哪里设置relatedByAttribute键,我的意思是为哪个实体和哪个属性设置relatedByAttribute键
我在stack overflow上也看到了一些实体的重复问题,我认为这是另一个问题,但如果您能提出一些建议,这将是一件好事,因为我从头开始,可以使我的代码易于理解,并且没有其他问题。多谢各位
我使用的链接:我解决了这个问题。我错过的一件事是关系用户信息的mappedKeyName 首先,我们需要为对应于JSON键的关系设置mappedKeyName 因此,如果您得到的JSON如下所示:
{
"status": 1,
"message": "success",
"player": {
"playerID": 1,
"teamID": 14,
"firstname": "NAME",
}
}
mappedKeyName键将是player.teamID
relatedByAttribute键将是作为团队实体属性的teamID
希望它能帮助别人
看看我为另一个类似于你的问题发布的答案:
您如何处理[M]任何关系?