2016-07-31 54 views
2

假設我有NSManagedObject Zoo,並且他將一個ManyTo連接到'Cat'命名的cat,這個連接是NSSet。 當我使用功能「filteredSetUsingPredicate」,我得到一個崩潰與下面的代碼:在CoreData NSSet上使用'filteredSetUsingPredicate'時發生崩潰(NSInvalidArgumentException:設置參數不是NSSet)

Zoo *zoo = //intance of our zoo with all the animals - from core data 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"catSize == Big"]; 
NSArray *arrayOfCats = [zoo.cats filteredSetUsingPredicate:predicate]; 

崩潰堆棧如下:

Terminating app due to an uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSMutableSet unionSet:]: set argument is not an NSSet' 

Crashed: com.apple.main-thread 
1 CoreFoundation     0x180f51798 -[NSMutableSet unionSet:] + 96 
2 CoreData      0x182f24154 -[_NSFaultingMutableSet willReadWithContents:] + 716 
3 CoreData      0x182f05f10 -[_NSFaultingMutableSet count] + 28 
4 Foundation      0x181a93828 -[NSSet(NSPredicateSupport) filteredSetUsingPredicate:] + 68 

出現這種情況只有一次在一段時間,而且可能與我在後臺上下文中做的更新和刪除有關(添加或刪除貓,如果我堅持這個例子)。 任何想法如何保護我的應用程序免於崩潰?任何訪問財產貓導致崩潰。

+0

的[在NSPredicate子查詢結果:\ [的NSMutableSet unionSet \]中設置參數不是一個NSSet中]可能的複製(http://stackoverflow.com /問題/ 30992832/nspredicate-子查詢 - 結果 - 在-的NSMutableSet-unionset - 組 - 參數 - 是 - 不的) – Larme

回答

0

你應該看看的關係,刪除規則,確保其設置正確