ページ 11

【objective-c】NSArrayの内容をNSMutableStringで編集したい

Posted: 2011年2月11日(金) 13:47
by りょち
いつもお世話になっております。

NSArrayに"あいうえお""かきくけこ"とオブジェクトが入っているとします。
そこから"かきくけこ"を取り出して頭の3文字を削除して"けこ"にするために以下のコードを作りました。

コード:

	NSArray *arr = [[NSArray alloc] initWithObjects:@"あいうえお",@"かきくけこ",nil];
	NSMutableString *str = [arr objectAtIndex:1];
	[str deleteCharactersInRange:NSMakeRange(0,3)];
	NSLog(@"%@",str);
NSMutableStringで"かきくけこ"を入れるところまではうまくいっているのですが
deleteCharactersInRangeを実行するとアプリ自体がクラッシュしてしまいます。

NSArrayのオブジェクトを編集する方法として、どのようなやり方があるか教えていただけないでしょうか?
お手数ですがよろしくお願い致します。

Re: 【objective-c】NSArrayの内容をNSMutableStringで編集したい

Posted: 2011年2月11日(金) 23:00
by Justy
りょち さんが書きました:NSMutableStringで"かきくけこ"を入れるところまではうまくいっている
 うまくいっていないように見えます。
 NSArrayに入っているのは NSStringであって、NSMutableStringではないです。
 つまり、中身は NSStringなのに NSMutableStringとして取りだしているので失敗するわけです。

 NSArrayの中身を編集したいということであれば、正しく NSMutableStringを NSArrayに入れるようにして下さい。

Re: 【objective-c】NSArrayの内容をNSMutableStringで編集したい

Posted: 2011年2月14日(月) 09:45
by りょち
Justy さんが書きました:NSArrayの中身を編集したいということであれば、正しく NSMutableStringを NSArrayに入れるようにして下さい。
そういう事だったんですね・・・・。理解しました。

コード:

	NSMutableString *a = [NSMutableString stringWithFormat:@"あいうえお"];
	NSMutableString *b = [NSMutableString stringWithFormat:@"かきくけこ"];
	NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:a,b,nil];
	NSMutableString *str = [arr objectAtIndex:1];
	[str deleteCharactersInRange:NSMakeRange(0,3)];
	NSLog(@"%@",str);
とすることで解決いたしました。いつもありがとうございます!