2012-04-20 32 views
0

我想用接下來的謂詞來獲取:與檢查一個新實例謂語取不工作

request.predicate = [NSPredicate predicateWithFormat:@"forPeople == %@", self.people]; 

當人類實體與我取的實體,以一對多的關係。 奇怪的是,這個謂詞完全適用於舊的人的實例,但是當我創建人的新實例(並將其連接到獲取對象的實例)時,我得到一個空的fetchedObjects數組。 但如果我再次運行該應用程序,相同的謂詞會給我一個有效的fetchedObjects數組。

我特別保存並檢查人員的新實例,所以我不知道是什麼使運行之間的差異。

+0

什麼是self.people和forPeople這裏的類型告訴我們一點 – 2012-04-20 10:01:50

+0

self.people是一個實體。和「forPeople」是從獲取的實體到「人」實體的關係 – litov 2012-04-20 11:45:38

+0

您是否在使用共同的上下文?或者你使用多個上下文? – 2012-04-20 15:46:20

回答

0

您確定首先連接了入口,然後獲取它?嘗試在創建ir之後嘗試登錄新的entety.forpPdople,也許你剛剛沒有連接它呢?

+0

我迷上了它,並且連接正確 – litov 2012-04-20 11:47:23

0

試試這個:

request.predicate = [NSPredicate predicateWithFormat:@"%@ IN forPeople", self.people]; 
+0

forPople不是NSSet。一對多關係的方向是每個DesiredNum(獲取的實體)有一個forPeople,並且每個People有許多DesiredNum。據我瞭解,這個謂詞不會工作 – litov 2012-04-20 13:25:40

+0

命名約定會讓我困惑很多 – 2012-04-20 15:42:43