0
我需要在覈心數據模型核心數據獲取最新對象值
抓取只有一個值的最新條目表結構: 時間戳,接收器,消息
條目1:2014年1月1日, 123,你好
條目2:2014年2月1日,321,你好
條目3:2014年2月1日,123,hello1
條目4; 02.02.2014,321,你好1
我只需要得到接收器123和接收器321的最新條目。 你有什麼想法或者我應該更改爲sqlite嗎?
感謝烏拉圭回合的答覆
我需要在覈心數據模型核心數據獲取最新對象值
抓取只有一個值的最新條目表結構: 時間戳,接收器,消息
條目1:2014年1月1日, 123,你好
條目2:2014年2月1日,321,你好
條目3:2014年2月1日,123,hello1
條目4; 02.02.2014,321,你好1
我只需要得到接收器123和接收器321的最新條目。 你有什麼想法或者我應該更改爲sqlite嗎?
感謝烏拉圭回合的答覆
用於指定你想從接收器123或接收器321來項,你需要使用的NSPredicate
。
接下來,對於最新的條目,這可能有點棘手。假設對於一個日期條目,您只能創建一個條目,但您可以依賴最後日期條目對應於最新記錄的事實。但是如果有多個條目對應一個日期的機會,那麼我建議你創建一個額外的列,稱爲序列號。原因是Core Data不會按照插入的順序獲取數據。另外,在表中保留一些不屬於數據的主鍵是一種好的做法。現在,要獲取最小/最大的條目,您必須使用NSSortDescriptor
。
我附上一個示例代碼。
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"myEntityName"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"receiver == %d", receiverValue];
[fetchRequest setPredicate:predicate];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"serialNo" ascending:NO];
[fetchRequest setSortDescriptors:@[sortDescriptor]];
NSArray *results = [context executeFetchRequest:fetchRequest error:nil];
if ([results count] > 0) {
MyManagedObject *object = [results firstObject];
}
希望這個答案可以幫助你。
閱讀NSPredicates。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.html – Mike 2014-08-27 17:08:57