1
你好我试着去插入一个多对多的关系,但未能=(插入一个多对多的关系在Xcode 4.2使用coredata
这里是代码
categoria.h
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class SubCategoria;
@interface Categoria : NSManagedObject
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * nombre;
@property (nonatomic, retain) NSSet *subcategoria;
@end
@interface Categoria (CoreDataGeneratedAccessors)
- (void)addSubcategoriaObject:(SubCategoria *)value;
- (void)removeSubcategoriaObject:(SubCategoria *)value;
- (void)addSubcategoria:(NSSet *)values;
- (void)removeSubcategoria:(NSSet *)values;
@end
categoria.m
#import "Categoria.h"
#import "SubCategoria.h"
@implementation Categoria
@dynamic id;
@dynamic nombre;
@dynamic subcategoria;
@end
然后我尝试以下列方式插入。
NSManagedObjectContext *context = [self managedObjectContext];
Categoria *cat = [NSEntityDescription
insertNewObjectForEntityForName:@"Categoria"
inManagedObjectContext:context];
cat.id =[NSNumber numberWithInt:2];
cat.nombre = @"portatil";
SubCategoria *subCat = [NSEntityDescription
insertNewObjectForEntityForName:@"SubCategoria"
inManagedObjectContext:context];
subCat.id = [NSNumber numberWithInt:1];
subCat.nombre = @"toshiba";
SubCategoria *subCat2 = [NSEntityDescription
insertNewObjectForEntityForName:@"SubCategoria"
inManagedObjectContext:context];
subCat2.id =[NSNumber numberWithInt:1];
subCat2.nombre = @"sony";
[cat addSubcategoriaObject:subCat];
[cat addSubcategoriaObject:subCat2];
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
它插入类别和子类别,但当它试图插入关系船给我这个例外。
-[Categoria subcategoria]: unrecognized selector sent to instance 0x6dd8290
为什么这个错误发生????? 非常感谢洙提前。
嘿,我解决了这个问题,真的不知道真的是如何,但我怀疑在多关系的关系中,我并没有检查级联字段(我知道,由于是级联删除没有那么多的意思) 。任何方式工作,也许我只需要重新生成模型。但是非常感谢 – IturPablo 2011-12-28 17:18:06