我怎样才能做到这一点:
[wage setText:@""];
[hours setText:@""];
[grossPay setText:@""];
[taxes setText:@""];
[netPay setText:@""];
在一条线上?
我怎样才能做到这一点:
[wage setText:@""];
[hours setText:@""];
[grossPay setText:@""];
[taxes setText:@""];
[netPay setText:@""];
在一条线上?
不要在一行中完成。这样做是为了容易理解。引用 Brian Kernighan 的话:
每个人都知道,调试的难度是一开始编写程序的两倍。因此,如果您在编写它时尽可能地聪明,您将如何调试它?
如果所有这些都符合 KVC 并且您想要放置相同的值,则可以将所有这些放在一个数组中,然后设置文本。
[[NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil] setValue:@"" forKey:@"text"];
或者hoshi的想法也不错。(同样它需要 KVC 合规性)
非 KVC 解决方案:
[[NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil] makeObjectsPerformSelector:@selector(setText:) withObject:@""];
使用模型类,如:
@interface DbInfos : NSObject{
NSString *wage;
NSString *hours;
NSString *grossPay;
NSString *taxes;
NSString *netPay;
}
@property(nonatomic,strong)NSString *wage;
@property(nonatomic,strong)NSString *hours;
@property(nonatomic,strong)NSString *grossPay;
@property(nonatomic,strong)NSString *taxes;
@property(nonatomic,strong)NSString *netPay;
-(id)initWithWage:(NSString *)newWage Hours:(NSString *)newHours GrossPay:(NSString *)newTaxes NetPay:(NSString *)newNetPay;
同意 Rob (+1) 的观点,但为了好玩而回答:
for (UILabel * at in [NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil]) at.text = @"";
请注意,如果wage
、hours
、grossPay
或taxes
是,这将失败nil
。