我开始在ios 5中使用核心数据。我有我的产品型号:
Product.m:
#import "Product.h"
@implementation Product
@dynamic category_id;
@dynamic label;
@dynamic price;
@end
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看起来像:
<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>
当我有一个应答器产品时,我会像这样构建我的模型:
item = [[NSClassFromString(className) alloc] init];
当我有一个属性为category_id时,我会这样做:
[item setValue:currentNodeContent forKey:elementName];
我得到了错误:
CoreData:错误:无法在NSManagedObject类'Product'上调用指定的初始值设定项
有什么想法吗?
答案 0 :(得分:11)
NSManagedObject的文档声明专用的初始化程序是:
initWithEntity:insertIntoManagedObjectContext:
这就是失败的原因。我见过的大多数例子都表明你应该得到一个像这样的新对象
[NSEntityDescription entityForName:@"MyClass" inManagedObjectContext:self.managedObjectContext]];
所以你可以尝试类似的东西:
[NSEntityDescription entityForName:className inManagedObjectContext:self.managedObjectContext]];