2009-07-21 2 views
1

私はNSStringに関してかなり簡単な質問がありますが、それは私の望むことをしていないようです。NSStringに複数の文字列を追加することに関する簡単な質問

これは私が

NSString *title = [NSString stringWithformat: character.name, @"is the character"];

持っているものこれは私のパーサでのラインですが、PLISTにでcharacternameと挿入をとり、しかし、それは、@を挿入しません「の文字である」があります私が間違っている何か?

答えて

2

コードが間違っています。それは次のようになります。character.nameは別のNSStringであると仮定し

NSString *title 
    = [NSString stringWithformat:@"%@ is the character", character.name]; 

String Programming Guide for CocoaのフォーマットString Objects paragraphを読んで、文字列の書式設定に関するすべてのことを学んでください。

+0

ありがとうございますが、これを行うにしても が動作しないようですが、2番目の文字列を追加できません。 NSString * title = [NSString stringWithformat:@ "%sは文字です"、@ "%sは文字2です"]; –

+0

NSStringを渡す場合は$ @、Cの文字列を渡す場合は%sを使用する必要があります。 – StilesCrisis

0

stringWithFormatので、最初の引数としてフォーマット文字列を受け取り、character.nameあなたのキャラクターの名前であると仮定すると、あなたが必要とする:それは@"Bob"だ場合

NSString *title = [NSString stringWithformat: @"%s is the character", 
    character.name]; 

をあなたが持っていることは、そのフォーマット文字列として文字の名前でありますBobはあなたが得るものです。それは"@Bob %s"だった場合、それが仕事だろうが、おそらくあなたはCの文字列を"%s"を使用する必要があります

注:-)だけで文字の名前が表示されていることをどこか別の場所まで詰め込むでしょう、私は"%@"が文字であれば、正しい書式指定子だと思います.nameはNSString自体です。

+0

mmmご返信ありがとうございますが、これは当てはまりません。私はそれを試してみましたが、すでに試してみたので失敗することが分かっていました NSString * title = [NSString stringWithformat:@ "文字"、character.name];そして、それは "文字は"完全にかかるようです。 –

+0

これは、あなたがそこに "%s"を持っていないからです(@ "%sは文字です"、@ "は文字です")。 "%s"を書式文字列に入れると、次の引数に含まれる文字列(つまりcharacter.name)に置き換えられます。 character.nameがCの文字列ではなくNSStringの場合は、updateも参照してください。 – paxdiablo

+0

コード例では、おそらく%sの代わりに%@を使用する必要があります。私の経験では、Cの文字列はCocoaではほとんど使用されていませんが、%@はどのNSObjectでも動作します。 –