我有以下谓词适用于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]];
大多数情况下,predicateFilter将是一个数字为@"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
为开头的数字,以便我可以相应地编辑谓词?
编辑:
我想我只需要创建一个谓词,将code
的前3位数字与NSString匹配,后者为005.那么这将给我剩下的结果005.5,005.6等。
答案 0 :(得分:1)
由于代码是一个字符串,你可以做一个MATCH比较,或者是这个核心数据。如果是核心数据,您可以使用transient attribute添加属性以将代码作为Integer codeInteger 返回。