Как я могу проверить, не содержит ли строка допустимое числовое значение в Objective-C? - PullRequest
0 голосов
/ 03 сентября 2011

Я делаю сравнение:

 else if([change doubleValue] == 0 && indexPath.row == sectionRows - 1)

как я могу проверить, когда [change doubleValue] ничего не возвращает?

Ответы [ 2 ]

4 голосов
/ 03 сентября 2011

Нет способа, которым doubleValue не обходится без возврата чего-либо.Минимальное значение, которое вы можете проверить, это 0.В следующих случаях doubleValue возвращает 0.

  1. string не содержит действительного числового значения.
  2. string - это nil.
  3. * string на самом деле содержит @"0".

Проверка правильности номера
Используйте NSPredicate, чтобы проверить, содержит ли строка числовое значение.

NSString *str = @"sfas";
NSString *regx = @"(-){0,1}(([0-9]+)(.)){0,1}([0-9]+)";
NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regx];
BOOL isAValidNumber = [test evaluateWithObject:str];
2 голосов
/ 03 сентября 2011

см. NSScanner


...