2013-10-05 157 views
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 

回答

0

只是實現totalPrice作爲一個瞬態屬性。在Core Data模型編輯器中將其標記爲瞬態

然後,在您的託管對象子類中,重寫getter。

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

如果沒有設置其他兩個屬性,它應該按預期返回0。

+0

謝謝你,但我徘徊了,我應該同時使用核心數據和子類中的實體?現在用上面的代碼我不能添加和刪除。我連接了ArrayController與子類,而不是核心數據模型,它不起作用。 – user2414590

+0

你描述的是一個不同的問題。你應該先接受答案,並可能提出一個新問題。 – Mundi