Objective c 我们能否确保Class*参数仅由NSManagedObject的子类填充?

Objective c 我们能否确保Class*参数仅由NSManagedObject的子类填充?,objective-c,Objective C,我有这个方法: @implementation NSObject (defaultSelector) +(NSDictionary *) idSelectorDictionary { if (_idSelectors==nil) { NSMutableDictionary * IDSelectors = [NSMutableDictionary dictionary]; IDSelectors[NSStringFromClass([Distance

我有这个方法:

@implementation NSObject (defaultSelector)
+(NSDictionary *) idSelectorDictionary
{
    if (_idSelectors==nil)
    {
        NSMutableDictionary * IDSelectors = [NSMutableDictionary dictionary];
        IDSelectors[NSStringFromClass([DistanceGrouping class])]=NSStringFromSelector(@selector(Description));
        IDSelectors[NSStringFromClass([Business class])]=NSStringFromSelector(@selector(ID));
        IDSelectors[NSStringFromClass([Tag class])]=NSStringFromSelector(@selector(Name));
        IDSelectors[NSStringFromClass([Image class])]=NSStringFromSelector(@selector(URL));
        IDSelectors[NSStringFromClass([Alias class])]=NSStringFromSelector(@selector(stringAlias));
        IDSelectors[NSStringFromClass([City class])]=NSStringFromSelector(@selector(Name));
        IDSelectors[NSStringFromClass([Country class])]=NSStringFromSelector(@selector(Name));
        IDSelectors[NSStringFromClass([District class])]=NSStringFromSelector(@selector(ID));
        IDSelectors[NSStringFromClass([Phone class])]=NSStringFromSelector(@selector(thePhone));
        IDSelectors[NSStringFromClass([URL class])]=NSStringFromSelector(@selector(Name));
        IDSelectors[NSStringFromClass([KeyPhrase class])]=NSStringFromSelector(@selector(thekeyword));
        IDSelectors[NSStringFromClass([PlaceCache class])]=NSStringFromSelector(@selector(Text));
        IDSelectors[NSStringFromClass([BGCatalogData class])]=NSStringFromSelector(@selector(id));
        IDSelectors[NSStringFromClass([CategoryNearby class])]=NSStringFromSelector(@selector(imageNamed));
        IDSelectors[NSStringFromClass([Review class])]=NSStringFromSelector(@selector(ID));
        IDSelectors[NSStringFromClass([KeyPhrase class])]=NSStringFromSelector(@selector(thekeyword));
        IDSelectors[NSStringFromClass([AutoCompleteEntry class])]=NSStringFromSelector(@selector(idOfEntries));
        IDSelectors[NSStringFromClass([CDParent class])]=NSStringFromSelector(@selector(strParentId));
        _idSelectors = IDSelectors;
    }
    return _idSelectors;
}
这是NSObject的一个类别。为什么要反对?事实上,我希望它成为NSManagedObject的一个类别

但是,如果我这样做,这些代码将无法工作:

+(void) debuggingToolsShowObjectsWithThisIDs: (NSArray *) localObjectIDs forClass: (Class) class
...
    NSPredicate * pred = [NSPredicate predicateWithFormat:@"%K in %@",class.defaultSelector,localObjectIDs];
我得到了这个错误:

/business/Dropbox/badgers/BadgerNew/BGMDCRManagedObjectContextThreadHandler.m:286:71:将Objective-C指针类型“Class”(又名“Class*)隐式转换为C指针类型“struct objc_Class*”需要桥接转换

我可以将(类)更改为(NSManagedObjectSubclass)或其他什么吗