我有2個表之間用多對多的關係連接起來。核心數據。加入2個表與許多tomany的關係?
SQL等效不存在,因爲它需要第三個表將多對多關係拆分爲兩個一對多關係。例如,我有兩個核心數據實體:具有屬性的類別(項目數組)和具有屬性的項目(類別數組)。
我需要除「空」類別(當沒有此類別的項目時)以外的所有類別。
我目前的臨時解決方案看起來不正確。我使用NSFetchRequest來獲取所有類別。然後,我使用for-each手工從該數組中刪除所有類別的空項目數組。
我有2個表之間用多對多的關係連接起來。核心數據。加入2個表與許多tomany的關係?
SQL等效不存在,因爲它需要第三個表將多對多關係拆分爲兩個一對多關係。例如,我有兩個核心數據實體:具有屬性的類別(項目數組)和具有屬性的項目(類別數組)。
我需要除「空」類別(當沒有此類別的項目時)以外的所有類別。
我目前的臨時解決方案看起來不正確。我使用NSFetchRequest來獲取所有類別。然後,我使用for-each手工從該數組中刪除所有類別的空項目數組。
我的解決辦法:
[NSPredicate predicateWithFormat:@"ANY items != nil"]
爲了獲取所有類別,除了空的,你可以只使用這樣的斷言:
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Category"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"[email protected] > 0"];
NSArray *categories = [context executeFetchRequest:fetchRequest error:NULL];
有你在yourselft嘗試過嗎?終止由於未捕獲的異常'NSInvalidArgumentException'的應用程序,原因:'對多密鑰不允許在這裏',這對我來說是一個問題 – user2083364
對不起,錯字。它應該是'items。@ count'而不是'items.count' –
好吧,現在它可以工作 – user2083364