A.b和B.a与许多关系相反.为什么这个谓词为A工作:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT SELF IN %@",bObject.a];
虽然这个没有:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT %@ IN b",bObject];
我认为两个谓词都应该给出相同的结果 – 通过< - > b与bObject无关的As的集合.但实际上,第一个给出正确的集合,而第二个没有.
更新:
这是sample project,其中A.b由Account.filtered_clients体现,B.a由Client.filtered_by体现.
在MasterViewController.m中切换第143行和第144行的注释以查看差异.
解决方法
这是另一个想法:也许它试图用NOT来“否定”bObject.因此,尝试:
@"NOT (%@ IN b)"