変更可能でないオブジェクトの変更を試みるためのERROR

このエラーは何ですか?私は可変型を使用していますが、まだ動作していません!

エラー:

キャッチされない例外によるアプリケーションの終了   'NSInvalidArgumentException'、理由: 'mutate immutable   deleteCharactersInRangeを持つオブジェクト: '

NSMutableString *line= [NSMutableString stringWithString:@"here is the string"];
[line deleteCharactersInRange: NSMakeRange(1,9 )];
0

3 答え

あなたのコードがあなたがここで引用したとおりに正確に見える場合、問題はあなたが空の文字列から何かを削除しようとしていることです。しかし、削除できるものは何もないので、それは誤りです。

0
追加された

My new answer:

あなたの新しいコードでは、最後に余分な行を追加しました:

NSMutableString *line= [NSMutableString stringWithString:@"here is the string"];
[line deleteCharactersInRange: NSMakeRange(1,9 )];
NSLog( @"line is %@", line );

コンソールの出力は次のとおりです。

2011-11-25 06:08:13.248 TestingCommandLine[13324:903] line is he string

例外はスローされません。それは私のために働いているように見えます!

元の質問に対する元の回答:

その中に何も入っていない行から文字を削除することはできません(したがって、例外)。

それらの2つのソースコードの間に追加のコードがありますか?そうでない場合は、有効なNSMutableString ...がありません。そして、それに何もない変更可能な文字列から何も削除することはできません。

0
追加された
コードが改訂されました!この場合はplzを確認してください。
追加された 著者 saleh Hosseinkahni,
あなたの改訂コードは私のために働く。まだあなたのために働いていないのですか?
追加された 著者 Michael Dautermann,

例外名は明白です: "Invalid Argument"。あなたがしたのは、空の変更可能な文字列を作成してから、制限をはるかに超えた範囲の文字を削除しようとしていました。この関数は、範囲外では許容されません。例外が発生します。 なぜあなたは "ラインは価値がある"というコメントを書いていますか?あなたが投稿した2行のコードの間にそれを生成していますか?

0
追加された