У меня есть следующий предикат, который отлично работает с числами, такими как 555 и 623 (3-значные числа)
Проблема в том, что у меня есть номера, такие как 005 и 009 и т. Д. (1 цифра с двумя 0 перед).
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"ANY code BETWEEN %@",
[NSArray arrayWithObjects:
[NSExpression expressionForConstantValue: [NSNumber numberWithFloat: [self.predicateFilter floatValue]]],
[NSExpression expressionForConstantValue: [NSNumber numberWithFloat: [self.predicateFilter floatValue] + .99]],
nil]];
В большинстве случаев предикатFilter будет строкой с номером, например @"124"
. Но когда я запускаю число, например 035 (обратите внимание на 0 в начале), я получаю следующий NSLog:
2011-08-13 18:32:23.989 Codes[2007:707] code 004
2011-08-13 18:32:24.018 Codes[2007:707] ANY code BETWEEN {4, 4.99}
2011-08-13 18:34:23.846 Codes[2007:707] code 083
2011-08-13 18:34:23.864 Codes[2007:707] ANY code BETWEEN {83, 83.99}
То есть эти цифры не найдены из-за 00X
.
Есть ли способ, которым я могу сделать if / else или что-то, что ловит все числа, для начала которых есть 0
или 00
, чтобы я мог соответственно отредактировать предикат?
EDIT:
Я думаю, мне просто нужно сделать предикат, который сопоставляет первые 3 цифры code
с NSString, что равно 005. Тогда это даст мне остальные результаты, которые будут 005.5, 005.6 и т. Д.