2012-11-13 97 views
0

作为问题问我想知道是否有可能改变属性的低谷整数的for循环。是否有可能做一个for循环更改属性的

例如:

或者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

你可以做这样的事情......

for (int i=1; i<4; i++) { 
    UILabel *label = [self objectForKey:[NSString stringWithFormat:@"lblTeamName%i", i]]; 
    label.text = @"blah"; 
} 

这将依赖于其为标签标准命名约定。

哦,也只是一个音符。你不再需要把@synthesize。如果你使用Xcode 4.5,那么他们就不再需要使用@synthesize。编译器推断它是否被遗漏。

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反射,你可以手动得到定义的属性和改变任何有价值的东西。所以你必须使用一个额外的数组来获得这种行为。

+0

这是一个很好的替代品,我可以使用这个。 –

相关问题