libro
www.tuyano.com
初心者のためのObjective-Cプログラミング入門

テキストを扱うNSString/NSMutableString (5/6)

作成:2011-02-11 17:59
更新:2011-02-12 12:02

■テキストを編集可能なNSMutableString

NSStringは、さまざまな操作は用意されてますが、すべて「新たに修正したNSStringインスタンスを作って返す」という形になっていました。NSStringのテキスト自体は編集できませんでした。

が、場合によってはそれでは困ることもあります。そこでObjective-Cでは、テキスト編集可能なクラス「NSMutableString」というものを用意しています。これはNSStringを継承したもので、テキストを操作するメソッドなどが追加になっています。

このNSMutableStringは、stringWithCapacity:というコンビニエンスコンストラクタ(覚えてますか? インスタンスを生成するメソッドでしたね)を持っています。
NSMutableString *変数 = [NSMutableString stringWithCapacity:《NSUInteger》];
引数には、初期状態で確保しておくメモリ(バイト数)を指定します。これでインスタンスを作成し、テキストを設定すればいいわけですね。ただし、これはあくまで初期値であるということを理解してください。

もし、指定したメモリサイズより長いテキストを設定したとしても、自動的に調整されちゃんとテキストは保管されます。NSStringと違い、自由に保管テキストを操作でいますから。あくまで「最初に、とりあえずこれだけ確保する」というだけです。
[《NSMutableString*》 setString:《NSString*》];
これは、引数で指定したテキストを設定するものです。先のstringWithCapacity:でインスタンスを作成後、これでテキストを設定すればいいでしょう。後は、必要に応じてテキストを操作していけば良いわけです。――もっと簡単に使いたい!というなら、こういうメソッドもあります。
NSMutableString *変数 = [NSMutableString stringWithString:《NSString*》];
このstringWithString:というのはスーパークラスのNSStringにあるメソッドで、引数に用意されたテキストを持ったインスタンスを作成します。この他にもいろいろとコンビニエンスコンストラクタはありますが、とりあえずこの2つを覚えておけば十分使えるでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのObjective-Cプログラミング入門」に戻る