[英]NSPredicate fetch coredata
我的CoreData模型中有兩個鏈接類型。
FlightRecording和AHRSMessage
一個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.