如何在一行上使用多个变量的方法

时间:2012-02-03 05:03:05

标签: iphone objective-c variables methods settext

我该怎么做:

[wage setText:@""];
[hours setText:@""];
[grossPay setText:@""];
[taxes setText:@""];
[netPay setText:@""];

在一行?

4 个答案:

答案 0 :(得分:4)

不要在一行中完成。这样做很容易理解。引用Brian Kernighan:

  

每个人都知道调试的难度是首先编写程序的两倍。所以,如果你在写作时就像你一样聪明,你将如何调试呢?

答案 1 :(得分:2)

如果所有这些都符合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:@""];

答案 2 :(得分:0)

使用模型类,如:

@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;

答案 3 :(得分:0)

同意Rob(+1)关于此问题,但回答有趣

for (UILabel * at in [NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil]) at.text = @"";

请注意,如果wagehoursgrossPaytaxesnil,则会失败。