核心数据实体到自定义NSManagedObject类

时间:2013-10-05 08:27:07

标签: core-data entity subclass nsmanagedobject

我有一个简单的实体“产品”,其中包含属性:

id int64
sku text
descript text
quantity int64
unitPrice Decimal
totalPrice Decimal

我需要的是totalPrice的值是数量+ totalPrice的结果

为此,我需要使用NSManagedObject的子类而不是Entity。 我从实体生成了这样一个类,但我不知道如何实现该类。 我想添加,删除SET和获取记录。

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


@interface Products : NSManagedObject

@property (nonatomic, retain) NSString * descript;
@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSNumber * quantity;
@property (nonatomic, retain) NSString * sku;
@property (nonatomic, retain) NSDecimalNumber * totalPrice;
@property (nonatomic, retain) NSDecimalNumber * unitPrice;

@end


    #import "Products.h"


@implementation Products

@dynamic descript;
@dynamic id;
@dynamic quantity;
@dynamic sku;
@dynamic totalPrice;
@dynamic unitPrice;




@end

1 个答案:

答案 0 :(得分:0)

totalPrice实现为瞬态属性。在Core Data模型编辑器中将其标记为 transient

然后,在您的托管对象子类中,只需覆盖getter。

- (NSNumber*)totalPrice {
   return @(self.unitPrice.floatValue * self.quantity.intValue);
}

如果未设置任何其他两个属性,则应按预期返回0.