Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c NSManagedObject基类的选择器无法识别_Objective C_Core Data_Inheritance - Fatal编程技术网

Objective c NSManagedObject基类的选择器无法识别

Objective c NSManagedObject基类的选择器无法识别,objective-c,core-data,inheritance,Objective C,Core Data,Inheritance,在实例上调用基类方法时,我遇到“Unrecogned selector”异常,看不出问题出在哪里 我有一个名为Form的对象,如下所示: #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> #import "HPSDbBase.h" @interface Form : HPSDbBase @end HPSAppDelegate* appDelegate = [[UIApplication s

在实例上调用基类方法时,我遇到“Unrecogned selector”异常,看不出问题出在哪里

我有一个名为Form的对象,如下所示:

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

@interface Form : HPSDbBase

@end
HPSAppDelegate* appDelegate = [[UIApplication sharedApplication] delegate];

NSError* error = nil;
NSFetchRequest * request = [[NSFetchRequest alloc] init];

[request setEntity:[NSEntityDescription entityForName:@"Form" inManagedObjectContext:appDelegate.managedObjectContext]];

NSArray* arrayOfForms = [appDelegate.managedObjectContext executeFetchRequest:request error:&error];

for (int i=0;i<arrayOfForms.count;i++)
{

    Form* dbForm = [arrayOfForms objectAtIndex:i];

    NSLog(@"Form.json=%@",dbForm.json); // this works

    NSString* wwwww = (Form*)[dbForm getJSONElement:@"test"]; // exception here

}
有人能看出我做错了什么吗

万分感谢

编辑1

以下是HPSDbBase的实现:

#import "HPSDbBase.h"

@implementation HPSDbBase

@dynamic id;
@dynamic json;


-(id)getJSONElement:(NSString*)key
{
    NSData *jsonData = [[self json] dataUsingEncoding:NSUTF8StringEncoding];

    NSError *e = nil;

    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error: &e];
    NSDictionary *jsonDictionary = (NSDictionary *)jsonObject;

    id rc = [jsonDictionary objectForKey:key];

    return rc;
}

@end 

我找到了问题所在


我已经重命名了我的核心数据对象。我重新命名了我能看到的关于核心数据对象名称的所有内容,但这显然是不够的。我删除了核心数据实体,然后用正确的名称重新创建了一个全新的实体,一切都开始工作。

我找到了问题所在


我已经重命名了我的核心数据对象。我重新命名了我能看到的关于核心数据对象名称的所有内容,但这显然是不够的。我删除了核心数据实体,然后用正确的名称重新创建了一个全新的实体,一切都开始工作。

重命名类后,我也收到了此错误


如果你不想删除你的类,我发现我可以通过打开我的xcdatamodeld文件,点击Configurations->Default来解决这个错误。在那里,实体的类描述仍然引用旧名称。在这里更正后,问题得到了解决。

我在重命名一个类后也收到了这个错误


如果你不想删除你的类,我发现我可以通过打开我的xcdatamodeld文件,点击Configurations->Default来解决这个错误。在那里,实体的类描述仍然引用旧名称。在这里更正后,问题就解决了。

我也收到了这个错误。据了解,这仅仅是因为实体的核心数据配置中的属性名称有输入错误。它在类实现中的@dynamic语句中命名正确,因此在编译时不会发出标志,但在访问时会立即发出。因为我正在设置NSManagedObject子实体,所以我没有去寻找显而易见的东西。如果其他人也在同一条船上,请在此处列出此项。

我也收到了此错误。据了解,这仅仅是因为实体的核心数据配置中的属性名称有输入错误。它在类实现中的@dynamic语句中命名正确,因此在编译时不会发出标志,但在访问时会立即发出。因为我正在设置NSManagedObject子实体,所以我没有去寻找显而易见的东西。如果其他人也在同一条船上,请在此处列出此项。

我们可以查看实现细节吗?什么是getJSONElement?我已经添加了HPSDbBase的实现,但我认为问题在于它不是将对象“视”为表单对象,而是将其“视”为NSManagedObject对象。我们可以看到实现的详细信息吗?什么是getJSONElement?我已经添加了HPSDbBase的实现,但我认为问题在于它不是将对象“视”为表单对象,而是将其“视”为NSManagedObject对象?谢谢您的回答。尽可能将其标记为已回答。干杯。谢谢你带着你的答案回来。尽可能将其标记为已回答。干杯。在我的例子中,出于某种原因,其中一个实体根本没有设置类名。非常感谢您,先生,让我走上了正确的道路:在我的例子中,出于某种原因,其中一个实体根本没有设置类名。先生,非常感谢你让我走上正轨:
-[NSManagedObject getJSONElement:]: unrecognized selector sent to instance 0x8290940
#import "HPSDbBase.h"

@implementation HPSDbBase

@dynamic id;
@dynamic json;


-(id)getJSONElement:(NSString*)key
{
    NSData *jsonData = [[self json] dataUsingEncoding:NSUTF8StringEncoding];

    NSError *e = nil;

    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options: NSJSONReadingMutableContainers error: &e];
    NSDictionary *jsonDictionary = (NSDictionary *)jsonObject;

    id rc = [jsonDictionary objectForKey:key];

    return rc;
}

@end