2012-01-09 17 views
3

我是一個iOS新手,所以請耐心等待。iOS:if-else在stringwithformat中

我想使用stringWithFormat構造一個字符串,但是我只想在條件爲真的情況下放入字符串的一部分。我會如何實現類似 -

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

請讓我知道,如果我不夠清楚。爲實現這一

回答

9

最易讀的方式做到這一點是使用一個顯式if塊。

但是,您也可以使用ternary operator做內聯:

BOOL condition = YES; 
NSString* str = [NSString stringWithFormat: @"%@%@", @"string1", 
                (condition) ? 
                 @"string2" : 
                 @""]; 
4

的一種方法是,如果條件爲假插入一個空字符串,並使用第二個字符串是這樣的情況:

myString = [NSString stringWithFormat:@"%@%@", @"myString1", 
      (condition) ? @"This is myString2" : @""]; 
+0

在對象 - '真'應該是'YES'。此外,沒有必要與「是」進行比較。 – 2012-01-09 20:39:40

+0

@BenS當然,謝謝:) – Andreas 2012-01-09 20:40:04

1
NSString *myString = nil; 
if (condition1) { 
    myString = [NSString stringWithFormat:@"%@", condition1]; 
} else { 
    myString = [NSString stringWithFormat:@"%@", condition2]; 
} 
+0

看起來比其他人好很多,但時間更長。 – Emil 2012-01-09 21:12:31

+1

是的,這只是爲了方便閱讀,如果其他塊。其他答案與if/else代碼一樣有效,只是有點不同。 – 2012-01-09 21:36:40

1
BOOL test =0; 
NSString *string = [NSString stringWithFormat:@"%@%@", @"myString1", test? @"Mystriong 2":@"Mystring3"]; 
NSLog(@"string: %@", string);