gpt4 book ai didi

objective-c - CoreData循环改变关系

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:32 27 4
gpt4 key购买 nike

我有一个像这样的简单模型:

item  category --> category 
<--- items

和以下数据:

item A -> category blue
item B -> category blue
item C -> category blue
item D -> category green
item E -> category green

我想要实现的是将类别为绿色的所有项目更改为蓝色。

以下代码只产生了一个错误:

两个类别已经存在:

blueCategory
greenCategory


for (Item *aItem in [greenCategory.items]) {
[aItem setCategory:blueCategory];
}

错误:

'NSGenericException', reason: '* Collection <_NSFaultingMutableSet: 0x8a0ef70> was mutated while being enumerated.'

我的问题是:如何在循环中更改项目中的类别?

最佳答案

问题是你不能改变(变异)像你的greenCategory.items这样的集合,当你在它上面循环时,这就是你在改变类别时所做的该集合中的项目。您需要做的是创建一个单独的集合并对其进行循环。

NSArray *greenCategoryItemsArray = [greenCategory.items allObjects];

for (Item *aItem in greenCategoryItemsArray) {
[aItem setCategory:blueCategory];
}

关于objective-c - CoreData循环改变关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12364963/

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