iOS: if-else в строке с форматом - PullRequest
3 голосов
/ 10 января 2012

Я новичок в iOS, поэтому, пожалуйста, потерпите меня.

Я хочу создать строку, используя stringWithFormat, но я хочу вставить часть строки, только если условие истинно. Как бы я достиг чего-то вроде -

myString = [NSString stringWithFormat:@"%@%@", 
           @"myString1",
           //put myString2 only if (someCondition)]

Пожалуйста, дайте мне знать, если я не достаточно ясно.

Ответы [ 4 ]

9 голосов
/ 10 января 2012

Самый разборчивый способ сделать это - использовать блок explict if.

Однако вы также можете сделать это встроенным с помощью троичного оператора :

BOOL condition = YES;
NSString* str = [NSString stringWithFormat: @"%@%@", @"string1", 
                                                     (condition) ? 
                                                         @"string2" : 
                                                         @""];
4 голосов
/ 10 января 2012

Один из способов добиться этого - вставить пустую строку, если условие ложно, и использовать вторую строку true так:

myString = [NSString stringWithFormat:@"%@%@", @"myString1",
           (condition) ? @"This is myString2" : @""];
1 голос
/ 10 января 2012
    BOOL test =0;
NSString *string = [NSString stringWithFormat:@"%@%@", @"myString1", test? @"Mystriong 2":@"Mystring3"];
NSLog(@"string: %@", string);
1 голос
/ 10 января 2012
NSString *myString = nil;
if (condition1) {
   myString = [NSString stringWithFormat:@"%@", condition1];
} else {
   myString = [NSString stringWithFormat:@"%@", condition2];
}
...