Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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
Ios NSManagedObject子类-发送到实例的选择器无法识别_Ios_Objective C_Core Data - Fatal编程技术网

Ios NSManagedObject子类-发送到实例的选择器无法识别

Ios NSManagedObject子类-发送到实例的选择器无法识别,ios,objective-c,core-data,Ios,Objective C,Core Data,我有一个核心数据类ZSShotCD,它是从xcdatamodeld生成的(是的,我已经在模型中正确地设置了这个类)。我不想在其中放置任何自定义方法,因为我可能需要在某个时候重新生成,所以我将其子类化为ZSShot。以下是一些相关信息: 首先,生成的类: #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> @interface ZSShotCD : NSManagedObject @proper

我有一个核心数据类ZSShotCD,它是从xcdatamodeld生成的(是的,我已经在模型中正确地设置了这个类)。我不想在其中放置任何自定义方法,因为我可能需要在某个时候重新生成,所以我将其子类化为ZSShot。以下是一些相关信息:

首先,生成的类:

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface ZSShotCD : NSManagedObject

@property (nonatomic, retain) NSString * shotDescription;
@property (nonatomic, retain) NSString * shotType;

@end
当我尝试在ZSShot实例上调用MainText方法时,如下所示:

cell.shotDescriptionLabel.text = [item MainText];
我得到:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ZSShotCD MainText]: unrecognized selector sent to instance 0x8d130c0'
该实例(单元)与实体中定义的属性没有问题(它从核心数据中很好地提取数据),我使用的代码基本上与其他实体上构建的类在其他地方使用的代码相同——唯一的区别是我尝试使用子类中定义的方法


有人能解释一下吗?

您需要为xxx.xcdatamodeld中的实体设置类,如下所示:

(UserInfo是UserBase的子类,UserBase是一个NSManagedObject类。)


或者,您将获得一个基类实例,该实例没有您调用的方法。

您需要为xxx.xcdatamodeld中的实体设置类,如下所示:

(UserInfo是UserBase的子类,UserBase是一个NSManagedObject类。)


或者,您将获得基类的一个实例,该实例没有您调用的方法。

项的类型是什么?用
NSLog(@“%@,[item class])
检查它,我认为它应该是
ZSShotCD
。顺便说一句,为什么不使用category而不是subclass。您能显示一下您创建项目的代码吗?正如@KudoCC所说,它似乎是一个ZSShotCD,而不是一个ZSShot,这一点通过您获得的异常得到了证实。我敢打赌,您通过核心数据获取获得了“ZSShot实例”,在这种情况下,它根本不是一个ZSShotCD实例,而是一个ZSShotCD实例。关于这一点,错误信息非常清楚@KudoCC关于类别的建议是正确的,那么你就不必对你的获取结果施放、摆弄或做任何事情来使它成为子类的实例。你完全正确。我是新手,所以我不知道子分类在NSManagedObject环境中如何工作(或不工作)。我现在已经将我的子类作为一个类别进行了修改,它正在工作。谢谢大家。
项目的类型是什么?用
NSLog(@“%@,[item class])
检查它,我认为它应该是
ZSShotCD
。顺便说一句,为什么不使用category而不是subclass。您能显示一下您创建项目的代码吗?正如@KudoCC所说,它似乎是一个ZSShotCD,而不是一个ZSShot,这一点通过您获得的异常得到了证实。我敢打赌,您通过核心数据获取获得了“ZSShot实例”,在这种情况下,它根本不是一个ZSShotCD实例,而是一个ZSShotCD实例。关于这一点,错误信息非常清楚@KudoCC关于类别的建议是正确的,那么你就不必对你的获取结果施放、摆弄或做任何事情来使它成为子类的实例。你完全正确。我是新手,所以我不知道子分类在NSManagedObject环境中如何工作(或不工作)。我现在已经将我的子类作为一个类别进行了修改,它正在工作。谢谢各位。
cell.shotDescriptionLabel.text = [item MainText];
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ZSShotCD MainText]: unrecognized selector sent to instance 0x8d130c0'