簡體   English   中英

NSPredicate提取核心數據

[英]NSPredicate fetch coredata

我的CoreData模型中有兩個鏈接類型。

FlightRecordingAHRSMessage

一個FlightRecording鏈接到許多AHRSMessages

我一直在獲取每個記錄並通過其鏈接消息進行迭代:

for (__weak id msgObj in rec.ahrsMessages) {

並沒有看到我想要的性能。 因為我要獲取實際的記錄對象而不是消息,所以我不相信可以在獲取時設置批處理大小,因此我認為我最好使用正確的謂詞格式來獲取消息。

假設我有一個用於飛行記錄的NSManagedObjectID ,有沒有一種快速的方法可以對AHRSMessage進行謂詞查詢

我已經走到很遠了:

NSFetchRequest *msgFetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"AHRSMessage" inManagedObjectContext:context];

然后我不確定該怎么做我的謂詞。 我是否必須在實際字段上進行匹配,例如:

"ANY flightRecordings = %@"或類似的內容?

我是否必須在flightRecording中引用特定字段,或者是否可以僅在ID上進行匹配?

如果“ flightRecordings”是從AHRSMessage實體到FlightRecording 的多對多關系,則這應該起作用:

NSManagedObjectID *flightRecordingId = ...;
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"AHRSMessage"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY flightRecordings = %@", flightRecordingId];
[fetchRequest setPredicate:predicate];

所述的參數"ANY flightRecordings = %@"謂詞可以是FlightRecording對象 NSManagedObjectID一個的FlightRecording對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM