我有一个解决我的问题的方法,但我真的很想了解我为什么会遇到这个问题以及如何解决它。
我有一个实体 A 与另一个实体 B 相关,并且 A 的某些行在一个字段中有一个特殊标记。
我想数一下那些与B有关的A中有多少有这个特殊标记。
如果在创建 NSSet 后我计算集合,一切都可以完美运行:
NSSet *productsSet = currentList.ingredients;
int countProducts = productsSet.count;
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"self IN %@ AND isInList = %d", productsSet,1];
[fetchRequest setPredicate:predicate];
int totalProductsInList = [context countForFetchRequest:fetchRequest error:error];
如果我评论 int countProducts = productsSet.count; 我有这些错误:
-[NSNull unsignedIntValue]: unrecognized selector sent to instance 0x22b9cd8
2011-12-05 12:10:41.418 xxxxxxxxxx[32964:1bb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[NSNull unsignedIntValue]: unrecognized selector sent to instance 0x22b9cd8'
isInList 是一个 Int16
谢谢,
编辑:
如果我将 1 移到 NSPredicate 中,但没有计数,我会得到同样的错误:
[NSPredicate predicateWithFormat: @"self IN %@ AND isInList = 1", productsSet;
编辑2:
因为我找不到它为什么不起作用,所以我检查 productsSet.count,如果它大于 0,我发出 NSFetchrequest,问题就解决了。