我在带有字符串数据类型的coredata模型中有amount属性。我需要通过比较金额来查找记录。我已经尝试了NSPredicate,但没有任何结果,结果总是空的。
NSDecimal result;
NSScanner *theScanner = [[NSScanner alloc] initWithString:@"10.00"];
[theScanner scanDecimal:&result];
[theScanner release];
[request setPredicate:[NSPredicate predicateWithFormat:@"amount > %@",[NSDecimalNumber decimalNumberWithDecimal:result]]];
NSError* error = nil;
NSArray* records = [managedObjectContext executeFetchRequest:request error:&error];
NSLog(@"%@",records);
请记住,我将数值存储在coredata中的字符串数据类型中。以下是我正在分析数据的一些例子。
Examples: -12.00, +30.00 etc.
我知道在字符串类型中存储十进制值并不好,但我没有找到在coredata属性中存储负数或正数的好方法。如果有任何好的方法,请告诉我。
答案 0 :(得分:2)
只需使用Decimal
数据类型的金额(与Objective-C中的NSDecimalNumber
类相对应)。