2010-06-28 58 views
0

我在字符串數據類型的coredata模型中擁有數量屬性。我需要通過比較金額來查找記錄。我試過NSPredicate,但沒有結果,總是空的。如何使用NSPredicate篩選CoreData中的記錄

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屬性中的陰性或陽性標記量的好方法。如果有什麼好的方法可以讓我來做。

回答

2

只需使用Decimal數據類型的數量(對應於Objective-C中的NSDecimalNumber類)。

+0

謝謝,我做了,但現在的問題是我無法比較像下面的金額價值。模型 – AmitSri 2010-06-28 07:23:09

+2

的金額<0我嘗試了以下([金額doubleValue] <= 0),它的工作。 據我所知,NSDecimalNumber是一個結構,我們不能像以前那樣直接對它進行比較。 謝謝 – AmitSri 2010-06-28 07:33:49

+0

'NSDecimalNumber'是NSNumber的一個子類。 – diederikh 2010-06-28 11:52:32