检查类型的对象类的我有以下核心数据模型:NSPredicate在迅速
现在我想提取类型CDOnlineContact和CDOfflineContact的所有对象。所以,我有以下fetchedController:
let fetchRequest = NSFetchRequest(entityName: "CDContact")
fetchRequest.predicate = NSPredicate(format: "??? %@", CDOnlineContact, CDOfflineContact) // <-- Here find only the object of class CDOnlineContact and CDOfflineContact
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "fullname", ascending: true)]
let controller = NSFetchedResultsController(fetchRequest: fetchRequest,
managedObjectContext: self.context.managedObjectContext!,
sectionNameKeyPath: "firstLetter",
cacheName: nil)
controller.performFetch(nil)
我发现Objective-C的一些解决方案...
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self isKindOfClass: %@", [NSNumber class]];
,但遗憾的是我不能在这样迅速检查类。 只有查询:
mySecretObject is CDOnlineContact
在NSPredicate我不能做到这一点。所以我没有任何想法只找到具有指定类的对象。
可能是更好的办法是创建像onlineOfflineContact上CDProfile实体的新属性,当CDOnlineContact或CDOfflineContact保存willSave方法,你可以将这个布尔值设置为yes,默认为NO。这样你可以使用简单的谓词来获取联系人,如“onlineOfflineContact ='YES'” – Sandeep
@GeneratorOfOne谢谢,如果无法查询类,那么你的解决方案是一个好主意。另一种解决方案是如果类的名称存储在属性中。 – Qeychon