0
[NSString stringWithFormat:@"%@ \n%@ \n%@",
 self.message1,self.message2,self.message3];

== "" でない場合にのみ message1 ..2 ..3 のみを渡す方法はありますか?

4

2 に答える 2

4

代替のよりコンパクトなソリューションを提案するだけです:

[[@[self.message1, self.message2, self.message3]
    filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]]
            componentsJoinedByString:@" \n"];

Mundi のソリューションとは異なり、次のようになります。

  1. 使用できるすべての文字列の配列を作成します。
  2. 必要な文字列と不要な文字列を区別する述語を作成します。
  3. 述語を使用して最初の配列をフィルタリングすることにより、2 番目の配列を作成します。
  4. 2 番目の配列内のすべての項目を、文字列とその間の改行で結合するように要求します。

そこには明らかにより多くのステップがあるので、もう少し費用がかかりますが、ほとんどの目的では、ニッケルやダイムのものを気にする必要はありません.

于 2012-11-11T00:35:22.117 に答える