の と の違いを知りnil
たい@""
ですNSMutableString
。
NSMutableString
毎秒文字列値をきれいにする必要があります。
そう
myMutableString = nil;
また
myMutableString = @"";
どちらがきれいにするのが良いですか、そしてその理由は何ですか?
の と の違いを知りnil
たい@""
ですNSMutableString
。
NSMutableString
毎秒文字列値をきれいにする必要があります。
そう
myMutableString = nil;
また
myMutableString = @"";
どちらがきれいにするのが良いですか、そしてその理由は何ですか?
アップデート
変更可能な文字列の場合、最初に次のように割り当て/初期化する必要があります。
NSMutableString *myMutableString = [[NSMutableString alloc] init];
多分あなたはそれをしたかもしれませんが、次のように文字列をリセットする必要があります:
[myMutableString setString: @""];
したがって、 を書く代わりにmyMutableString = @""
、上記のコードを使用してください。
割り当てmyMutableString
た場合nil
、有効なポインター/オブジェクトではなく、メッセージまたはアクションに応答できません。実際に に設定すると@""
、メッセージ、メソッド、およびアクションに応答できる完全に有効なオブジェクトであり、長さ 0 の文字列が含まれているだけです。
myMutableString = nil;
[myMutableString appendString: @"It now contains a valid string!"];
文字列がnil
myMutableString = @"";
[myMutableString appendString: @"It now contains a valid string!"];
これは発生する可能性myMutableString
があり、有効なオブジェクトであり、メッセージに応答できます。そして、何を推測すると、文字列が追加されました!
そのため、文字列オブジェクトは引き続き初期化でき、文字を含まない実際の文字列値を持つことができます。配列が有効で、その中にオブジェクトが 0 個あるのと同じように。そうでなければ、どのように追加しますか!?
ただし、NSMutableString
のシナリオでは、実際に割り当て初期化する必要がある場合があります....誰かが明確にしてください。
明らかに、への割り当ての@""
方が優れていますが、実際にはシナリオによって異なります。nil
変数を新しい文字列オブジェクトに再割り当てしない限り、なぜに割り当てたいのかわかりません。
そのなかで何も
使用する
[myMutableString setString: @""];
文字列をリセットします。
オブジェクトは同じままです。そのコンテンツをクリアするメソッドを呼び出します。