2012-01-09 2 views
3

私はiOS初心者ですので、私にご負担ください。iOS:if-else内の文字列内に

stringWithFormatを使用して文字列を作成したいが、条件がtrueの場合にのみ文字列の一部を入れたい。どのように私は何かを達成するだろう -

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

私は十分に明確でない場合は教えてください。それを達成するために

答えて

9

ifブロック。

しかし、あなたはまた、ternary operatorとインラインそれを行うことができます。

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

一つの方法は、条件が偽である場合は、空の文字列を挿入し、2番目の文字列を使用することです。このように真である:これを行うには、最も読みやすい方法は、明示的なを使用することです

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

は 'true'にはYES''でなければなりません。また、「はい」と比較する必要はありません。 –

+0

@BenSもちろん、ありがとう:) – Andreas

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

他よりもはるかに優れていますが、より長いです。 – Emil

+1

これは、ブロックされている場合は読みやすいです。他の答えは同様に効果的ですが、if/elseコードとはちょっと違って見えます。 –

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