0

我有一个带有属性的简单实体“产品”:

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

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

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

#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
4

1 回答 1

0

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

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

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

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

于 2013-10-05T09:17:10.410 回答