Objective c 迭代对象操作或同时更改多个对象

Objective c 迭代对象操作或同时更改多个对象,objective-c,iphone,Objective C,Iphone,做我正在做的事情的最好方式是什么goodThingX、badThingX和nothin是UILabel NSString *todayNothing = [[todayArray objectAtIndex:0] objectForKey: @"nothing"]; if (todayNothing!=NULL) { goodThing1.hidden = YES; goodThing2.hidden = YES; goodThing3.hidden = YES;

做我正在做的事情的最好方式是什么
goodThingX
badThingX
nothin
是UILabel

NSString *todayNothing = [[todayArray objectAtIndex:0] objectForKey: @"nothing"];
if (todayNothing!=NULL) {
    goodThing1.hidden = YES;
    goodThing2.hidden = YES;
    goodThing3.hidden = YES;
    badThing1.hidden = YES;
    badThing2.hidden = YES;
    badThing3.hidden = YES;
    nothing.text = todayNothing;
    nothing.hidden = NO;
} else {
    goodThing1.hidden = NO;
    goodThing2.hidden = NO;
    goodThing3.hidden = NO;
    badThing1.hidden = NO;
    badThing2.hidden = NO;
    badThing3.hidden = NO;
    nothing.hidden = YES;
}

i、 e.
todayNothing
有文本时,我想隐藏6个标签,并显示
nothing
标签,否则相反。我不会费心去优化它,但现在可能会有比6更多的标签。

您可以将它们全部放在
init
awakeFromNib
或类似位置的数组中,以便以后更容易地迭代

@class MyThing {

   UIView *theThings[NUM_THINGS]; // ...or use an NSArray if you like that

}
@end

- (id)init // maybe awakeFromNib would be a better place for UI elements
{
  self = [super init];
  if (self) {
    theThings[0] = goodThing1;
    theThings[1] = goodThing2;
    theThings[2] = goodThing3;
    :
  }
  return self;
}
…然后再使用这样的循环

for (int i=0; i<NUM_THINGS; i++)
  theThings[i].hidden = YES;

对于(inti=0;i首先,您有一个称为“布尔变量”的东西


其次,最好使用数组或
NSArray
来存储所有
好的
-和
坏的

这会将代码长度减少一半,所以我现在就使用它。与此同时,我正在尝试更改epatel的NSArray代码。我使用的是NSArray,而不是
UIView*things[NUM_THINGS];
我在循环中迭代时遇到问题,我正在尝试
[THINGS objectAtIndex:1];
我做得对吗?对
NSArray使用快速枚举(用于循环中)
NSString *todayNothing = [[todayArray objectAtIndex:0] objectForKey: @"nothing"];
BOOL todayNothing_has_something = (todayNothing!=nil); // YES if todayNothing!=nil, NO otherwise
goodThing1.hidden = todayNothing_has_something;
goodThing2.hidden = todayNothing_has_something;
goodThing3.hidden = todayNothing_has_something;
badThing1.hidden = todayNothing_has_something;
badThing2.hidden = todayNothing_has_something;
badThing3.hidden = todayNothing_has_something;
if (todayNothing)
  nothing.text = todayNothing;
nothing.hidden = ! todayNothing_has_something;