Core data 自定义NSManagedObject类的核心数据实体

Core data 自定义NSManagedObject类的核心数据实体,core-data,entity,subclass,nsmanagedobject,Core Data,Entity,Subclass,Nsmanagedobject,我有一个简单的实体“产品”,具有以下属性: id int64 sku text descript text quantity int64 unitPrice Decimal totalPrice Decimal 我需要的是totalPrice的值,它是数量+totalPrice的结果 为此,我可能需要使用NSManagedObject的子类而不是实体。 我从实体生成了这样一个类,但我不知道如何实现该类。 我想添加、删除集合并获取记录 #import <Foundation/Foundat

我有一个简单的实体“产品”,具有以下属性:

id int64
sku text
descript text
quantity int64
unitPrice Decimal
totalPrice Decimal
我需要的是totalPrice的值,它是数量+totalPrice的结果

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

#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
#导入
#进口
@接口产品:NSManagedObject
@属性(非原子,保留)NSString*描述符;
@属性(非原子,保留)NSNumber*id;
@属性(非原子,保留)NSNumber*数量;
@属性(非原子,保留)NSString*sku;
@财产(非原子,保留)小数*总价;
@不动产(非原子,保留)N小数*单价;
@结束
#进口“Products.h”
@实施产品
@动态描述;
@动态id;
@动态量;
@动态sku;
@动态总价格;
@动态单价;
@结束

只需将
totalPrice
实现为一个临时属性。在核心数据模型编辑器中将其标记为瞬态

然后,在托管对象子类中,只需重写getter

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

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

谢谢。但我想知道是否应同时使用核心数据中的实体和子类?现在使用上面的代码,我无法添加和删除。我将ArrayController与子类连接,而不是与核心数据中的模型连接,但它不起作用。什么你描述的是另一个问题。你应该先接受答案,也许再提出一个新问题。