0
假設我有兩個實體:課堂和學生。課堂與學生有多對多的關係。每個學生都有一車(hascar爲1)或沒有(hascar爲0)有關核心數據獲取屬性的兩個基本問題
我想創建課堂幾個牽強的屬性:
- 許多有車的學生
- 學生人數
什麼讓我絆倒是語法。我如何創建一個謂詞來檢查特定教室中的所有學生?
謝謝!
假設我有兩個實體:課堂和學生。課堂與學生有多對多的關係。每個學生都有一車(hascar爲1)或沒有(hascar爲0)有關核心數據獲取屬性的兩個基本問題
我想創建課堂幾個牽強的屬性:
什麼讓我絆倒是語法。我如何創建一個謂詞來檢查特定教室中的所有學生?
謝謝!
您不需要提取或提取的屬性來檢查與特定教室相關的所有學生,因爲這種關係會自動找到學生。
ClassRoom{
roomNumber:number
teacher:string
students<-->>Student.classroom
}
Student{
name:string
classroom<<-->ClassRoom.students.
}
假設您有一個特定的ClassRoom對象aClassRoom。關鍵aClassRoom.students返回所有相關Student對象的NSSet。所有你需要做的就是使用收集操作符來獲取你想要的信息。
的學生人數將是簡單:
NSNumber *studentCount=[aClassRoom.students valueForKeyPath:@"@count"];
學生與汽車數量:
NSPredicate *p=[NSPredicate predicateWithFormat:@"hasCar==1"];
NSNumber *withCars=[[aClassRoom.students filteredSetUsingPredicate:p] valueForKeyPath:@"@count"];
如果你有關係,你永遠不要需要獲取找到的東西關於那種關係中的對象。
太棒了。我正在分析這種情況。這正是我需要的。謝謝。 – Chris 2011-04-13 00:37:38
作爲一個後續,如果我想在NSPredicate中使用它們來過濾fetchedresultscontroller的結果呢?例如,我可能想要篩選結果並僅顯示不是所有學生都有車的教室。 – Chris 2011-04-15 21:14:41
@Chris - 你想要的謂詞可能會在學生關係中使用「ANY」操作符。例如:「ANY students.hasCar == 0」將返回所有Classroom對象,其中至少有一名學生沒有汽車。 – TechZen 2011-04-18 18:12:05