我有两个类,Company和MyCompany。 MyCompany是Company的子类,Company是NSManagedObject的子类。我想为NSFetchRequest编写一个谓词,它将返回类Company的结果,但是会过滤掉MyCompany对象。NSPredicate过滤掉子类结果
我曾尝试以下(从这里https://stackoverflow.com/a/8065935/472344建议):
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"class != %@",NSStringFromClass([myCompany class])];
但我得到一个错误:
'keypath class not found in entity <NSSQLEntity CKCompany id=1>'
我还试图(从这里https://stackoverflow.com/a/11693983/472344的建议,我知道我真正想要的不是SELF是KindOfClass,但我只是用与答案中给出的完全相同的命令测试):
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [myCompany class];
而且得到了以下错误:
'Unknown/unsupported comparison predicate operator type'
我如何写一个谓词来实现我想要什么?我支持iOS 5及以上版本。
有问题的类不是NSObject,因此它不响应“class”或“className” – Stavash
Company和MyCompany都是NSObject,因为它们从NSManagedObject继承,但现在我意识到谓词正在应用于NSSQLEntity,所以我的情况并不等同于那些答案正在回应的情况。不过,我仍然需要解决我的问题。 – Darren