【问题标题】:How to later assign value to optional attribute of NSManagedObject in a NSManagedObjectModel having Three NSManagedObjects which is already created?以后如何在已经创建了三个 NSManagedObjects 的 NSManagedObjectModel 中为 NSManagedObject 的可选属性赋值?
【发布时间】:2010-04-30 15:05:02
【问题描述】:

我正在使用 coredata 框架。在我的 NSManagedObjectModel 中,我使用三个实体,即 Class、Student 和 Score,其中 Class 和 Student 具有一对多和反向关系,Student 和 Score 也具有反向但一对一的关系。

分数实体具有所有可选属性并具有默认的“0”decimalVaue,在添加新学生时未分配。但后来我想给他们单独分配分数,也给特定属性分配分数,而不是一次性分配所有分数属性。我能够创建学生并将其添加到特定班级,但不知道如何调用特定学生并为他们分配分数。例如 我想将Score'属性“运球”[有许多属性如“抢断”]分配给班级学生“大卫”的十进制值> “足球”,我该怎么做?

提前感谢您的任何建议。

【问题讨论】:

  • 除此之外,我想知道我是否会在添加新学生时插入新的分数对象,然后我会为它们赋值。如果不合适,请指导。

标签: iphone objective-c core-data nsmanagedobject


【解决方案1】:

我找到了解决办法。第一次在类 (NSManaged) 上下文中创建或添加新学生到类 (NSManaged) 对象时,还要添加一个新的分数 (NSManaged) 对象实例,该对象在其关系中具有新创建或添加的学生,同时为其分配默认值'0' 值到所有其他属性。 稍后您可以根据情况重新分配值。

[student setValue:@"Beckham" forKey:@"lastName"];
[student setValue:@"Soccer" forKey:@"belongsToClass"]; 

添加这个新学生后,保留对它的引用并在新的 Score 对象中使用它-

Score *score = [NSEntityDescription insertNewObjectForEntityForName:@"Score" inManagedObjectContext:managedObjectContext];
score setValue:[NSNumber numberWithInteger:0] forKey:@"dribbling"];//attribute
[associatedScore setValue:[self newlyAddedStudent] forKey:@"belogsToStudent"];//relation

就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多