问题在于我想知道是否有可能通过for循环的int改变属性。
示例:
或者Controller.h:
@property (weak, nonatomic) IBOutlet UILabel *lblTeamName1;
@property (weak, nonatomic) IBOutlet UILabel *lblTeamName2;
@property (weak, nonatomic) IBOutlet UILabel *lblTeamName3;
Controller.m或者
@synthesize property lblTeamName1;
@synthesize property lblTeamName2;
@synthesize property lblTeamName3;
for(int i = 0;i <= 3;i++)
{
lblTeamName(i).text = @"something";
}
我所要求的是一种方法,我不知道这是否有效或是否无法完成。
答案 0 :(得分:2)
您可以将属性放在NSMutableArray
中并循环显示。
NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject:lblTeamName1];
[arr addObject:lblTeamName2];
[arr addObject:lblTeamName3];
for(UILabel *label in arr) {
label.text = @"something";
}
我不是100%肯定,但我认为没有像Java Reflection那样你可以手动获取定义的属性并更改值。所以你必须使用一个额外的数组来获得这种行为。
答案 1 :(得分:0)
你可以这样做......
for (int i=1; i<4; i++) {
UILabel *label = [self objectForKey:[NSString stringWithFormat:@"lblTeamName%i", i]];
label.text = @"blah";
}
这将依赖于标签的标准命名约定。
哦,还有,只是一张便条。你不再需要放@synthesize。如果您正在使用Xcode 4.5,那么他们就无需使用@synthesize。如果遗漏,编译器会推断它。