2013-02-02 10 views
5

NSString AをNSString Bの前に追加したいと思います。 NSStringの終わりの代わりにNSStringの先頭に追加するメソッドが組み込まれていますか?NSStringメソッドの先頭に追加

stringWithFormatを使用することができますが、stringWithFormatstringByAppendingStringを使用してNSStringの最後にテキストを追加することの違いは何ですか?

答えて

34

文字列の末尾に追加できる場合は、文字列の先頭に追加することができます。

追加

NSString* a = @"A"; 
NSString* b = @"B"; 
NSString* result = [a stringByAppendingString:b]; // Prints "AB" 

前に付加

NSString* a = @"A"; 
NSString* b = @"B"; 
NSString* result = [b stringByAppendingString:a]; // Prints "BA" 
4

あなたもstringWithFormatを使用することができます。

NSString *A = @"ThisIsStringA"; 
NSString *B = @"ThisIsStringB"; 
B = [NSString stringWithFormat:@"%@%@",A,B]; 

stringByAppendingStringはNSStringの、のインスタンスメソッドでありますstringWithFormatはNSStringクラスのクラスメソッドです。

+0

クラス対インスタンスが "B" NSStringの上の任意の効果を持っていますか?どちらか一方を使用する利点は何ですか? – AnsonL

+0

あなたはオブジェクト指向のプログラミングを研究しなければなりません、これは基本的な原理です –

+0

インスタンスとクラスのメソッドが異なることを私は理解していますが、これはNSource "B" – AnsonL

2

"別の文字列に1つの文字列を追加する"というようなことはないと指摘しておきましょう。 NSStringは不変です。

いずれの場合も、「別の文字列で構成された新しい文字列を作成しています」。

新しく作成した文字列を同じ変数に戻しても問題ありません。

「文字列の最後にテキストを追加する」ことは決してありません。

9

シングルラインソリューション:ここ

myString = [@"pretext" stringByAppendingString:myString]; 
0

Iましスウィフト溶液:

extension String { 

    // Add prefix only, if there is not such prefix into a string 
    mutating func addPrefixIfNeeded(_ prefixString: String?) { 
     guard let stringValue = prefixString, !self.hasPrefix(stringValue) else { 
      return 
     } 
     self = stringValue + self 
    } 


    // Add force full prefix, whether there is already such prefix into a string 
    mutating func addPrefix(_ prefixString: String?) { 
     guard let stringValue = prefixString else { 
      return 
     } 
     self = stringValue + self 
    } 
} 
関連する問題