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作成しようとしているいずれsomeNSManagedObjectClassかの基本クラスです。anyOtherClass

于 2012-12-14T05:38:24.620 に答える