-2

我有一个NSArray名为 Houses 的对象,每个对象都有 3 个字段 = id、address、price

我可以通过使用设置值

[house setValue:@"£100k" forKey:@"price"];

但是我有另一个名为 Movements 的 NSArray,每个对象都有 2 个字段,id & price

那么如何使用第二个数组中的详细信息更新第一个数组.. 用英文我试图做"Update house price with movement price where house id = movement id"

提前致谢

4

1 回答 1

1

听起来你想要一个双循环:

for (House* house in houses)
for (Movement* movement in movements)
{
    if (house.id == movement.id)
        house.price = movement.price
}

如果只有一个这样的实例你可能想提前中断,你需要一个额外的 BOOL :

BOOL breaking = false;
for (House* house in houses)
{
    for (Movement* movement in movements)
    {
        if (house.id == movement.id)
        {
            house.price = movement.price
            breaking = true;
            break;
        }
    }
    if (breaking) break;
}

编辑:如果你经常做这种事情,你可能想要构造一个以 id 字段为键的字典,这样你就可以快速查找一个对象,而不是循环整个数组。NSDictionary 是您想要的类,还请注意键必须是对象,因此如果您的 id 字段是 int ,您需要在将[NSNumber numberWithInt:]其用作键之前将其转换为 NSNumber 。

于 2013-08-05T15:42:50.507 回答