使用 coredata 在 xcode 4.2 中插入多对多关系

发布于 2024-12-23 04:35:14 字数 2115 浏览 3 评论 0原文

嗨,我尝试插入多对多关系,但失败=(

这里是代码

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

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

Hi Im trying to insert a many to many relationship but fails =(

here is the code

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

Then I try to insert in the following way.

 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]);
    }

It insert the categories and subcategories but when it tries to insert the relation ship give me this exception.

 -[Categoria subcategoria]: unrecognized selector sent to instance 0x6dd8290

Why is this error happening ?????
Thanks soo much in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

骄傲 2024-12-30 04:35:14

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

在你的代码中,输出什么

NSLog(@"%@", cat);

Sounds like your Categoria entity doesn't have a subcategoria property. Double check your model. Maybe you mistyped something.

In your code, what does

NSLog(@"%@", cat);

output?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文