0

我做了一个这样的类别:

@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 的子类?

4

1 回答 1

2

NSObject是任何someNSManagedObjectClassanyOtherClass你将要制作的基类。

于 2012-12-14T05:38:24.620 回答