NSScannerの取り扱い

 

走査方法

(BOOL)isAtEnd

・文字列をすべて走査し終わったかの判定、whileとかで使うと便利

 

- (NSInteger)scanLocation

・現在の走査位置

・プロパティのように見えるがただのメソッドなので前の位置に戻ったりとかはできないみたい

 

- (BOOL)scanString:(NSString *)string intoString:(NSString **)stringValue

・scanLocationの位置からstringがあるかどうかを調べる

・なかったらNOを返す。あればYESを返し、scanLocationの位置をstringの次の文字の位置に移動させる。

・ちなみになかったらstringValueがnil、あればそこまでの文字が返ってくる

 

- (BOOL)scanUpToString:(NSString *)string intoString:(NSString **)stringValue

・scanLocationの位置から以降にstringがあるかどうかを調べる

・なければNO、あればYESを返し、scanLocationの位置をstringの先頭文字の位置まで移動させる。

・stringValueにはあればそれまでのscanLocationからstringの手前までの文字列が入り、なければscanLocationから最後の文字列までは入る

 

またscanなんたら系にはintegerやfloatもあるので数字しかないのがわかっている場合には利用してもいいかもしれない

 

でもparserとか色々いいものもあるしぶっちゃけ使わないだろうなぁ・・・