Предикатное сравнение строк с использованием> = и <= - PullRequest
0 голосов
/ 16 марта 2012

У меня есть даты, хранящиеся в строках (хорошо, я знаю, не спрашивайте, почему .... просто так должно быть)

как 20110111 20110214 ... и т.д.

Я хочу использовать предикат <= для сравнения 20110111 с 20110214 </p>

, но

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"(next <=[c] %@)", [[NSDate new] YYYYMMDDstringFromDate]];

дает

2012-03-16 17:52:05.236 ---[10851:11903] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid predicate: nil RHS'

после изменения на == [c]это работает, но я хочу использовать оператор <= </p>

1 Ответ

1 голос
/ 16 марта 2012

Учитывая вашу форму хранения, вы можете напрямую преобразовать их в целые числа и сравнить их как целые числа. Это работает только потому, что вы, кажется, храните их в форме день месяца месяца (то есть наиболее значимой в первую очередь). Есть ли причина, по которой вы не храните их как (32-битные) целые числа?

...