这是我第一次使用堆栈溢出,所以我确定我做错了...
我有3个实体卡,玩和计数。
它们是相关的
卡< --->>计数
播放<< --->计数
并且不确定是否需要但已尝试过卡<< --->>播放
这是我的情况,游戏中的对象已经存在,我们会说play1 play2和play3
当我创建一张新卡时,我有一张新卡的文本字段 然后我有一张桌子列出了所有戏剧。
newcard
play1输入新的计数值
play2输入新的计数值
play3输入新的计数值
我正在为实体使用NSManagedObject子类。
如何通过与新卡对象及其旁边输入的播放对象的关系将值保存到实体计数?
如果我使用类似的设置,我已经有卡对象和相关计数对象的NSSet,并且想要编辑一个值,我怎么告诉它我想要编辑与play3相关的对象?
哦,我多么希望Apple在那里找到了一个主键给我们。
让我补充一点,因为我确信我已经失去了所有人,因为我的背景是'年长'。
如果我有一把主键,我会这样做:
卡(1)让我们说它存在并且id为1或者当它被创建时我们将拥有id 1。
播放列表
play1
play2
play3 newcountvalue
我会保存新的valuecountvalue以及卡和播放的主键
newcountvalue / cardkv = 1 / playkv = 3.
如此简单的引用,我确信对象c或核心数据中有一些东西可以做到这一点,但对于我的生活,我找不到任何示例或教程超越一个实体与另一个或一个实体相关与其他两个实体有关。
答案 0 :(得分:0)
因此,您有许多不同的实体和每个实例。让我们假设您有一些用户选择的实例(伪代码):
Card *card = ...;
Play *play = ...;
我们要插入一个新的实体实例:
Count *count = [countEntity insertNew... intoContext:...];
并建立关系:
count.card = card;
play.count = count;
(希望关系多样性在那里是正确的,但你可以使用在类中生成的add方法)。
现在,当您保存上下文时,也会保存关系,并且在将来获取对象时,您可以查询关系集中的内容。
答案 1 :(得分:0)
好吧,我放弃了,上了旧学校,并使用了ID卡和游戏。所以当我创建一个计数时,我会检查id来编辑一个值,并在创建一个值时输入它们。我使用NSDefaults来保存ID值,并在创建需要id的新对象时使用一个简单的计数器类。
我知道核心数据使用了隐藏ID,但是我知道它在哪里以及应用程序实际运行时开销较少,因为我不需要在更新或创建时涉及所有实体的实例...... / p>
我也喜欢sql数据库,并希望苹果有朝一日决定允许使用sqlite的应用程序在云应用程序中使用它。