Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Core data 声明为类的所有内容都必须是NSObject吗?_Core Data_Xcode4.5 - Fatal编程技术网

Core data 声明为类的所有内容都必须是NSObject吗?

Core data 声明为类的所有内容都必须是NSObject吗?,core-data,xcode4.5,Core Data,Xcode4.5,我将其分类如下: @interface NSObject (defaultSelector) +(NSString *) defaultSelector; -(NSString *)defaultSelector; @end -(void)prefetchShortcutWithTable: (Class) someNSManagedObjectClass forInputArray: (NSArray *) inputArray withDictCache: (NSMutableDictio

我将其分类如下:

@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];
}
然后,我这样使用它:

@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 for inputArray:(NSArray*)inputArray with DictCache:(NSMutableDictionary*))dictToSave
仅接受NSManagedObject的子类?

NSObject
是您将要创建的任何
SomeNSManagedObject类
任何其他类的基类。

能否显示文档?并非所有内容都是NSObject的后代。@SharenEayrs:NSManagedObject类引用的第一行是:“继承自NSObject”。-NSObject是大多数Objective-C类层次结构的根类。我所知道的唯一例外是
NSProxy
。是的。也许
任何其他类
的部分被夸大了,但是
NSObject
仍然是Objective-C层次结构中大多数类的根类,并且肯定是针对
某些管理对象类
。您可能想签出
NSManagedObject
类的参考文档。对于
NSObject
类,如果我想指定someNSManagedObjectClass必须是NSManagedObject的后代,该怎么办?在声明类的
.h
文件中,使用以下语句
@interface someClass:someClass
告诉编译器它继承了哪个类。您可以告诉
someClass
它是任何类的后代,即使您希望它是您创建的某个自定义类的后代。