【问题标题】:Trying to set Core Data Relationships causing crash试图设置核心数据关系导致崩溃
【发布时间】:2013-09-30 00:20:38
【问题描述】:

我有几个实体,一个名为“List”,一个名为“Task”。两者都有多个属性,并且只有 1 个关系。 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];

它使我的应用程序崩溃而没有任何错误消息。任何帮助,将不胜感激。

【问题讨论】:

  • Task 是否设置为与List 有关系?另外,如果你只是做task.list = list会发生什么?
  • 是任务设置为与列表有关系,但尝试设置该关系也会导致应用程序崩溃。执行 task.list = list 将不起作用,因为 list 不是属性或关系的名称。
  • 添加异常断点以了解异常信息
  • 我做了,它只是告诉我断点在代码行 [self.list addHasTasksObject:task];并且控制台中没有打印出错误。
  • 通过 NSLogging 确保 self.listtask 都是有效对象。还要检查它们是否具有相同的context 属性。

标签: objective-c cocoa-touch core-data


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多