一切都被宣称为类必须是NSObject吗?

时间:2012-12-14 05:32:14

标签: core-data xcode4.5

我制作了这样一个类别:

@interface NSObject (defaultSelector)
+(NSString *) defaultSelector;
-(NSString *)defaultSelector;
@end

然后,我这样使用它:

-(void)prefetchShortcutWithTable: (Class) someNSManagedObjectClass forInputArray: (NSArray *) inputArray withDictCache: (NSMutableDictionary *) dictToSave
{
    NSString * attribute = [someNSManagedObjectClass defaultSelector];
    [self prefetchShortcutWithTable:NSStringFromClass(someNSManagedObjectClass) forAttribute:attribute forInputArray:inputArray withDictCache:dictToSave];
}

整个事情都有效。但是,编译器如何知道someNSManagedObjectClass将成为NSObject的子类?

实际上,我如何重写函数以便-(void)prefetchShortcutWithTable: (Class) someNSManagedObjectClass forInputArray: (NSArray *) inputArray withDictCache: (NSMutableDictionary *) dictToSave只接受NSManagedObject的子类?

1 个答案:

答案 0 :(得分:2)

NSObject是您要制作的所有someNSManagedObjectClassanyOtherClass的基类。