Подтвердить что ты не робот

Как я могу переопределить getter в свойстве при использовании Core Data?

Я хочу, чтобы иметь возможность переопределить getter на свойство string на одной из моих основных моделей данных и внутри 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.

Каков правильный способ доступа к основному элементу данных в получателе, как это?

4b9b3361

Ответ 1

Вы пробовали [self primitiveValueForKey:@"status"] вместо [super valueForkey:@"status"]?

Ответ 2

На всякий случай кто-то ищет немного больше информации о том, как переопределить методы getter и приземлиться на этой странице...

Внутри определения вашего свойства вы можете указать методы getter и setter следующим образом:

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

Вы можете указать только геттер, только сеттер или оба.