gpt4 book ai didi

ios - MagicalRecords 从 JSON/NSDictionary 导入数据。导入关系

转载 作者:行者123 更新时间:2023-12-01 19:02:14 25 4
gpt4 key购买 nike

我对人际关系有疑问。我必须 NSManagedObject 类 Team 和 Player。团队可以包含许多玩家。玩家只能包含一支球队。

这是来自两个请求的 JSON:

/团队

    {
"id" : 1,
"name" : "Chicago Bulls",
"city" : "Chicago"
},
{
"id" : 2,
"name" : "Detroit Pistons",
"city" : "Detroit"
},
...

/玩家
{
"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 |

如您所见,我没有为 Player 实体设置 teamId,因为我们需要使用 relatedByAttribute 键。这里的第一个问题我不知道我需要在用户信息中为哪个属性、属性或关系设置 relatedByAttribute 键。

写代码部分

假设我已经得到了由 NSDictionary 表示的团队 JSON。我做什么:

此代码使用 从 NSDictionary 导入所有数据用户信息 团队实体的每个属性。在这一步一切顺利。
Team *team = [Team MR_createEntity];
[team MR_importValuesForKeysWithObject:dictionary];

第二个操作是获取所有玩家并将他们附加到在第一步中已经创建的具体团队,使用您可以在 JSON 中看到的 key teamId。

我在这一步做什么。假设我和第一个玩家一起获得了 NSDictionary。

代码是相同的。
Player *player = [Player MR_createEntity];
[player MR_importValuesForKeysWithObject:dictionary];

但是这种关系不会起作用,MagicalRecords 不会将我的玩家与具体的团队联系起来,因为我没有像我说的那样设置 relatedByAttribute 键。我真的需要帮助解决这个问题,因为我了解导入的基本概念,但不明白我需要在哪里设置 relatedByAttribute 键,我的意思是针对哪个实体和哪个属性。

我在堆栈溢出上也看到了一些与实体有关的重复问题,我认为这是另一个问题,但是如果您能提出一些建议,那就太好了,因为我从头开始,可以使我的代码易于理解且没有其他问题.十分感谢!

我使用的链接: magical import

最佳答案

我解决了这个问题,我想念的一件事是关系用户信息的 mappedKeyName。

首先,我们需要为 JSON 键对应的关系设置 mappedKeyName。

因此,如果您得到的 JSON 如下所示:

{
"status": 1,
"message": "success",
"player": {
"playerID": 1,
"teamID": 14,
"firstname": "NAME",
}
}

映射键名 键是 player.teamID

相关属性 key 是 teamID,它是 Team 实体的一个属性。

希望它可以帮助某人。

enter image description here

关于ios - MagicalRecords 从 JSON/NSDictionary 导入数据。导入关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com