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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
りょち
記事: 7
登録日時: 10年前

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

#1

投稿記事 by りょち » 10年前

いつもお世話になっております。

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

コード:

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

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

アバター
Justy
副管理人
記事: 122
登録日時: 10年前
住所: 神奈川県

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

#2

投稿記事 by Justy » 10年前

りょち さんが書きました:NSMutableStringで"かきくけこ"を入れるところまではうまくいっている
 うまくいっていないように見えます。
 NSArrayに入っているのは NSStringであって、NSMutableStringではないです。
 つまり、中身は NSStringなのに NSMutableStringとして取りだしているので失敗するわけです。

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

りょち
記事: 7
登録日時: 10年前

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

#3

投稿記事 by りょち » 10年前

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);
とすることで解決いたしました。いつもありがとうございます!

閉鎖

“C言語何でも質問掲示板” へ戻る