2009-12-18 22 views
12

我希望能夠覆蓋我的核心數據模型之一的字符串屬性上的getter,並且在getter中我需要找出該屬性的值。如何在使用核心數據時重寫屬性上的getter?

@interface LabTest : NSManagedObject { 
} 
@property (nonatomic, retain) NSString *status; 
@end 

@implementation LabTest 

@dynamic status; 

- (NSString *)status { 
    NSString *tempStatus = [super valueForKey:@"status"]; 
    //do some checking here 
    return tempStatus; 
} 

@end 

上面的代碼崩潰的過程。我已經嘗試了一些不同的東西,但我認爲它們都以無限循環結束,程序崩潰時代碼爲139.

在getter中如何訪問核心數據成員的正確方法是什麼?

回答

24

你試過[self primitiveValueForKey:@"status"]而不是[super valueForkey:@"status"]

+0

有我正在尋找。謝謝! – 2009-12-18 21:09:36

+1

奇怪它是不是一個原始的...... – 2013-12-19 14:04:57

2

萬一有人正在尋找如何覆蓋getter方法多一點信息,並登陸此頁面上...

裏面的屬性定義,你可以指定getter和setter方法如下所示:

@property (nonatomic, retain, getter = getterMethodName, setter = setterMethodName) NSString *someString; 

您可以僅指定吸氣劑,僅指定器或兩者。