错误:CoreData:错误:无法调用指定的初始化程序在NSManagedObject类'Product' [英] Error : CoreData: error: Failed to call designated initializer on NSManagedObject class 'Product'

查看:520
本文介绍了错误:CoreData:错误:无法调用指定的初始化程序在NSManagedObject类'Product'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开始使用ios 5使用核心数据。我有我的产品型号:

I start to use core data with ios 5. I have my product model :

Product.m:

Product.m :

#import "Product.h"
@implementation Product
    @dynamic category_id;
    @dynamic label;
    @dynamic price;
@end

Product.h:

Product.h :

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

@interface Product : NSManagedObject 
  @property (nonatomic, retain) NSString *category_id;
  @property (nonatomic, retain) NSString *label;
  @property (nonatomic, retain) NSString *price;
@end

我尝试使用NSXMLParserDelegate解析一个带有自定义类的xml。我的xml看起来像:

I try to parse an xml with a custom class using NSXMLParserDelegate. My xml looks like :

<section id="2">
  <label>Animaux</label>
  <image>Images/Rayons/Bandeau/Animaux.png</image>
  <key>Images/Rayons/Bandeau/Animaux.png</key>
  <products>
     <Product id="21">
        <category_id>Chat</category_id>
        <label>Aliments pour chat</label>
        <price>2.00</price>
     </Product>
     <Product id="1286">
        <category_id>Chat</category_id>
        <label>Boite de paté</label>
        <price>0.00</price>
     </Product>
  </products>
</sections>

当我有一个balise产品时,我建立这样的模型:

When i have a balise Product, I build my model like this :

item = [[NSClassFromString(className) alloc] init];

当我有一个属性category_id,我做:

And when i have a property as category_id, i do :

[item setValue:currentNodeContent forKey:elementName];

我得到错误:

CoreData:错误:无法调用NSManagedObject类'Product'上指定的初始化程序

任何想法?

推荐答案

NSManagedObject 说明专用初始化器是:

The docs for NSManagedObject state that the dedicated intializer is:

initWithEntity:insertIntoManagedObjectContext:

这就是为什么会失败。我看到的大多数例子建议你应该得到一个这样的新对象

which is why that is failing. Most of the examples I have seen suggest you should get a new object like this

[NSEntityDescription entityForName:@"MyClass" inManagedObjectContext:self.managedObjectContext]];

所以你可以试试:

[NSEntityDescription entityForName:className inManagedObjectContext:self.managedObjectContext]];

这篇关于错误:CoreData:错误:无法调用指定的初始化程序在NSManagedObject类'Product'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆