0

属性を持つ単純なエンティティ「製品」があります。

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

私が必要としているのは、totalPrice の値が数量 + totalPrice の結果であることです

そのためには、エンティティの代わりに NSManagedObject のサブクラスを使用する必要があります。エンティティからそのようなクラスを生成しましたが、クラスを実装する方法がわかりません。レコードを ADD、REMOVE 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);
}

他の 2 つの属性のいずれかが設定されていない場合、期待どおり 0 が返されます。

于 2013-10-05T09:17:10.410 に答える