Objective c 将8个属性与3个其他属性进行比较,并将匹配项设置为零

Objective c 将8个属性与3个其他属性进行比较,并将匹配项设置为零,objective-c,Objective C,我有一个物体叫大脑 大脑有8个属性,其中包含一个“动物”对象 大脑,动物1, 大脑,动物, 动物3, ... 脑动物 然后我有三个其他属性称为 brain.selectedAnimal1,brain.selectedAnimal2,brain.selectedAnimal3 我想做的是通过所有的8个动物属性循环。。。如果其中一个动物属性与selectedAnimal1属性匹配,我想将动物属性设置为nil 我只想将一个动物属性设置为nil(即,如果其中两个动物属性与selectedAnimal1属

我有一个物体叫大脑

大脑有8个属性,其中包含一个“动物”对象

大脑,动物1, 大脑,动物, 动物3, ... 脑动物

然后我有三个其他属性称为

brain.selectedAnimal1,brain.selectedAnimal2,brain.selectedAnimal3

我想做的是通过所有的8个动物属性循环。。。如果其中一个动物属性与selectedAnimal1属性匹配,我想将动物属性设置为nil

我只想将一个动物属性设置为nil(即,如果其中两个动物属性与selectedAnimal1属性匹配,我只想将第一个设置为nil,而不是两个)

然后我想做同样的循环,但与selectedAnimal2和selectedAnimal3属性进行比较,如果动物属性与selectedAnimal匹配,则将它们设置为nil

有人能帮忙吗?我对objective-c还不够好,无法在不编写大约50行代码的情况下完成这项工作

因此,概括一下。。。我从8个动物属性开始,并希望以5个动物属性结束(3设置为零)


提前感谢,

有动物1,动物2。。。选择动物1,选择动物2

您应该真正研究如何使用集合(NSMutableArray或NSMutableSet),比如动物和选定动物,然后您可以使用快速枚举循环遍历动物对象:

for (Animal* animal in animals) {
    for (Animal* selectedAnimal in selectedAnimals) {
        /* Do checks */
    }
}
如果你发现一种动物同时存在于这两种环境中,你可以把它从动物身上移除。在枚举可变数组时注意不要更改它,否则会导致崩溃。我认为应该使用NSMutableSet(它有并集、减号运算符等等,这样就可以很容易地从一个集合中减去公共元素)