Kun*_*dit 1 iphone core-data objective-c nsmanagedobject
我正在使用核心数据框架来管理对象.我有一个实体,它有几个十进制类型的属性.其中包括从其他属性数学计算的属性.例:
@interface Marks : NSManagedObject
{
}
@property (nonatomic, retain) NSDecimalNumber * answerGradeA;
@property (nonatomic, retain) NSDecimalNumber * answerGradeB;
@property (nonatomic, retain) NSDecimalNumber * answerGradeC;
@property (nonatomic, retain) NSDecimalNumber * total;
Run Code Online (Sandbox Code Playgroud)
我想要属性total = 3xanswerGradeA + 2xanswerGradeB + 1xanswerGradeC.
如果有可能这样做,那怎么样?
核心数据的方式是添加"总数"作为模型的归属并将其标记为"瞬态".然后,您在子类中提供实现.
@interface Marks : NSManagedObject
{
}
@property (nonatomic, readonly) NSDecimalNumber* total;
@end
@implementation Marks (Calculated)
- (NSDecimalNumber*) total {
return (3 * [self valueForKey:@"answerGradeA"]) + (2 * [self valueForKey:@"answerGradeB"]) + [self valueForKey:@"answerGradeC"];
}
+ (NSSet *)keyPathsForValuesAffectingTotal
{
return [NSSet setWithObjects:@"answerGradeA", @"answerGradeB", @"answerGradeC", nil];
}
@end
Run Code Online (Sandbox Code Playgroud)
这将确保正确的缓存和更新总数.
| 归档时间: |
|
| 查看次数: |
4537 次 |
| 最近记录: |