入力された文字が数値か判断する方法

入力された文字が数値かどうか?判定する処理はいろいろありますが、cocoa の流儀ではどうするのかと調べると NSScanner ってのが使えると知りました。
初めて使いましたが、便利ですね。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 数値入力として妥当か判断する
- (BOOL)isDigit:(NSString *)inString
{
    if ([inString length] == 0) {
        return NO;
    }
 
    NSCharacterSet *digitCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
 
    NSScanner *aScanner = [NSScanner localizedScannerWithString:inString];
    [aScanner setCharactersToBeSkipped:nil];
 
    [aScanner scanCharactersFromSet:digitCharSet intoString:NULL];
    return [aScanner isAtEnd];
}

参考リンク:
terrazzoの日記 ■[Cocoa]Re: NSString が整数値かどうか調べる関数