2011-12-28 82 views
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 

为什么这个错误发生????? 非常感谢洙提前。

回答

1

听起来像你的Categoria实体没有subcategoria属性。仔细检查你的模型。也许你打错了什么。

在你的代码,什么是

NSLog(@"%@", cat); 

输出?

+0

嘿,我解决了这个问题,真的不知道真的是如何,但我怀疑在多关系的关系中,我并没有检查级联字段(我知道,由于是级联删除没有那么多的意思) 。任何方式工作,也许我只需要重新生成模型。但是非常感谢 – IturPablo 2011-12-28 17:18:06