Erreur : CoreData: erreur: Échec de l'appel désigné initialiseur sur NSManagedObject classe "Produit"
- Je commencer à utiliser de base de données avec ios 5. J'ai mon modèle de produit :
Produit.m :
#import "Product.h"
@implementation Product
@dynamic category_id;
@dynamic label;
@dynamic price;
@end
Produit.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
J'essaie d'analyser un document xml avec une classe personnalisée à l'aide de NSXMLParserDelegate. Mon xml ressemble :
<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>
Quand j'ai une balise de Produit, j'ai construit mon modèle comme ceci :
item = [[NSClassFromString(className) alloc] init];
Et quand j'ai une propriété comme category_id, je n' :
[item setValue:currentNodeContent forKey:elementName];
Et j'ai obtenu l'erreur :
CoreData: erreur: Échec de l'appel désigné initialiseur sur NSManagedObject classe "Produit"
Une idée?
Vous devez vous connecter pour publier un commentaire.
Les docs pour NSManagedObject état que l'dédié intializer est:
qui est pourquoi c'est un échec. La plupart des exemples que j'ai vu suggèrent que vous devriez obtenir un nouvel objet comme ce
Donc vous pouvez essayer quelque chose comme:
NSClassFromString()
, depuisentityForName:inManagedObjectContext:
veut unNSString
pour le nom de l'entité.