Как использовать метод для нескольких переменных в одной строке - PullRequest
0 голосов
/ 03 февраля 2012

Как я могу это сделать:

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

в одну строку?

Ответы [ 4 ]

4 голосов
/ 03 февраля 2012

Не делайте этого в одну строку. Сделайте это так, чтобы это было легко понять. Цитируя Брайана Кернигана:

Все знают, что отладка в два раза сложнее, чем написание программы. Итак, если вы настолько умны, насколько это возможно, когда вы пишете, как вы будете когда-либо отлаживать его?

2 голосов
/ 03 февраля 2012

Если все они соответствуют KVC и вы хотите поместить одно и то же значение, вы можете поместить все это в массив, а затем задать текст.

[[NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil] setValue:@"" forKey:@"text"];

Или идея Хоси тоже хороша. (опять же требуется соответствие KVC)

Решение без KVC:

[[NSArray arrayWithObjects:wage, hours, grossPay, taxes, netPay, nil] makeObjectsPerformSelector:@selector(setText:) withObject:@""];
0 голосов
/ 03 февраля 2012

согласен с Робом (+1) по этому вопросу, но отвечает за веселье :

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

обратите внимание, что это не получится, если wage, hours, grossPay или taxes были nil.

0 голосов
/ 03 февраля 2012

Используйте класс модели, как:

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