2011-07-26 9 views
0

私のコードでNSStringオブジェクトを消去したい(すべての文字を0に置き換える)。NSStringの文字を置換する

NSString *myString; 
for (int i=0; i<[myString length]; i++) 
{ 
myString[i] = 0; 
} 

しかし、それはコンパイルされません:私はこれを試したことを行うには

ラインのmyStringで "割り当てで互換性のないタイプを" [I] = 0;

は、私が理解し、それは新しいオブジェクトを作成しますので、私は機能stringByReplacingOccurancesOfStringを使用することはできませんし、私は私の最初のオブジェクト内の文字を置換したいと思います。

助けが必要ですか?

+0

ほとんどの文字列エンコーディングでは0が実際に有効な文字ではなく、文字列を終了するために使用されますが、これはNSStringの処理方法ではありますが、達成したいことを教えてください。あなたが '0'文字を意味しない限り。おそらく、あなたの文字列を構築するためにchar配列を使用したいと思うかもしれませんし、それからNSStringを作成し終えたら。 –

答えて

6

NSStringは変更不可能です。つまり、作成した内容を変更することはできません。あなたはそのためにNSMutableStringを持っています。

また、あなたはこの構文でNSStringまたはNSMutableString内の文字にアクセスすることはできません。

myString[i] = 0; 

NSString sおよびNSMutableString sがオブジェクトであり、あなたは彼らにメッセージを送信することにより、オブジェクトを操作します。たとえば、指定されたインデックスの文字を返すメソッドcharacterAtIndex:、または与えられた範囲内の指定された文字列のすべての出現を別の指定された文字列に置き換えるNSMutableStringreplaceOccurrencesOfString:withString:options:range:メソッドがあります。

+0

また、myString [i]はunichar型を返し、0は整数型です。役立たないコンパイラエラーを説明しています – MechEthan

+0

詳細な説明。 +1 –

+0

@Praveen Sありがとう:) – albertamg

1

定義では、NSStringは不変クラスなので、その内部のデータは変更できません。

次のメソッドを実装したクラスNSMutableString、探している:あなたがオブジェクト内の文字または部分文字列を置き換えるために使用することができます

replaceOccurrencesOfString:withString:options:range: 

は、あなたがそのメッセージを送信します。

+0

お返事ありがとうございます – TheFrancisOne