3

所以我有两个实体,一个叫做“列表”,一个叫做“任务”。它们中的每一个都有多个属性和一个关系。List 的关系称为“hasTasks”,它是一对多的关系。

这是为我生成的 Task.h 文件。

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class Task;

@interface List : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSNumber * number;
@property (nonatomic, retain) NSNumber * tasks;
@property (nonatomic, retain) NSNumber * totalTime;
@property (nonatomic, retain) NSSet *hasTasks;
@end

@interface List (CoreDataGeneratedAccessors)

- (void)addHasTasksObject:(Task *)value;
- (void)removeHasTasksObject:(Task *)value;
- (void)addHasTasks:(NSSet *)values;
- (void)removeHasTasks:(NSSet *)values;

@end

现在每当我调用类似的东西时

[self.list addHasTasksObject:task];

我的应用程序在达到这一点时崩溃。有人知道这是为什么吗?如果您需要查看更多我的代码,请随时询问。提前致谢!

4

2 回答 2

1

请你发布你的核心数据添加对象方法。让我看看那个方法。试试这个..

- (void)addButtonClicked:(id)sender

{

    if (![nameField.text isEqualToString:@""])

    {

    AppDelegate *appDelegate = (AppDelegate *) [UIApplication sharedApplication].delegate;

    ///Entity declaration....

        CountryNames *country = (CountryNames *) [NSEntityDescription insertNewObjectForEntityForName:@"CountryNames"
                                        inManagedObjectContext:appDelegate.managedObjectContext];
        ///take a array for relation ship atribute...
        for (int i = 0; i < citiesArray.count; i++)
        {   ///atribute declaration...
            CityNames *citiesNames = (CityNames *) [NSEntityDescription insertNewObjectForEntityForName:@"CityNames"
                                        inManagedObjectContext:appDelegate.managedObjectContext];

            [country addRelationtocitiesObject:citiesNames];

            citiesNames.cityName = [citiesArray objectAtIndex:i];
            NSLog(@"%@",citiesNames.cityName);

            NSError *error;

            if (![appDelegate.managedObjectContext save:&error]) {}

        }

        country.name = nameField.text;

        NSError *error;

        if (![appDelegate.managedObjectContext save:&error]) {}
        //  ListOfCountryDetails *viewList=[[ListOfCountryDetails alloc]init];
        [self.navigationController popToRootViewControllerAnimated:YES];
    }
}
于 2013-09-21T04:51:40.113 回答
1

我有同样的问题,我在 .xcdatamodeld 文件中修复了它。我不小心选择了关系的有序排列复选框,而没有重新生成 NSManagedObject 类。取消选中此框并重新构建为我解决了这个问题。如果您仍然有问题,请尝试重新生成您的 NSManagedObject 类。

于 2014-02-20T06:44:33.347 回答