Objective-CのNSStringとNSMutable Stringの実際の違いは何ですか? 私はたくさん検索しましたが、答えが得られません..NSStringは不変オブジェクトであり、NSMutableStringは可変オブジェクトであることを理解していますが、例を使用してそれらの違いを理解したい..助けてください..
今、質問は解決しました..
Objective-CのNSStringとNSMutable Stringの実際の違いは何ですか? 私はたくさん検索しましたが、答えが得られません..NSStringは不変オブジェクトであり、NSMutableStringは可変オブジェクトであることを理解していますが、例を使用してそれらの違いを理解したい..助けてください..
今、質問は解決しました..
NSMutableString と NSString の違い:
NSMutableString : NSMutableString オブジェクトは、それらが表す文字の基になる配列を変更するメソッドを提供しますが、NSString は提供しません。NSMutableString は、appendString、deleteCharactersInRange、insertString、replaceOccurencesWithStringなどのメソッドを公開します。これらのメソッドはすべて、メモリ内に存在する文字列を操作します。
NSString :必要に応じて、一度作成してから読み取り専用の文字列です。すべての「操作」メソッド (substring、uppercaseString など) は他の NSString オブジェクトを返し、メモリ内の既存の文字列を実際に変更することはありません。
例 :
NSString *simpleString = [[NSString alloc] initWithString:@"simple String"];
simpleString = [simpleString stringByAppendingString:@"OK"];
NSMutableString *mutableString = [[NSMutableString alloc] initWithString:@"MutableString"];
[mutableString appendString:@"OK"];
これらはどちらも、機能的には同じことを行いますが、トップ コード ブロックがリークします。
[NSString stringByAppendingString:]
新しい不変の NSString オブジェクトを生成し、それをポインタに指示します。ただし、その過程で、最初に指していた NSString オブジェクトを孤立させます。