IOS: проверить текстовое поле текста - PullRequest
0 голосов
/ 05 августа 2011

В текстовом поле я должен написать число: это число может быть с точкой (10.23) или без точки (10);но я должен проверить, что это число является числом, а не словом.Могу ли я проверить, есть ли в текстовом поле число вместо слова?Пример: если я пишу слово вместо числа, я хочу nslog, в котором говорится, что произошла ошибка.

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Другой способ:

NSString *string = @"684.14";
NSCharacterSet *decimalSet = [NSCharacterSet decimalDigitCharacterSet];
BOOL stringIsValid = ([[string stringByTrimmingCharactersInSet:decimalSet] isEqualToString:@""] || 
                      [[string stringByTrimmingCharactersInSet:decimalSet] isEqualToString:@"."]);

Также помните, что вы можете использовать textField.keyboardType = UIKeyboardTypeNumberPad; для клавиатуры. (Это не гарантирует только числовые записи, однако, это просто удобство для пользователя.)

0 голосов
/ 05 августа 2011

Выезд NSScanner: https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSScanner_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40003726

if( [[NSScanner scannerWithString:@"-123.4e5"] scanFloat:NULL] )
    NSLog( @"\"-123.4e5\" is numeric" );
else
    NSLog( @"\"-123.4e5\" is not numeric" );
if( [[NSScanner scannerWithString:@"Not a number"] scanFloat:NULL] )
    NSLog( @"\"Not a number\" is numeric" );
else
    NSLog( @"\"Not a number\" is not numeric" );
// prints: "-123.4e5" is numeric
// prints: "Not a number" is not numeric
...