Как я могу переопределить геттер для свойства при использовании Core Data? - PullRequest
13 голосов
/ 18 декабря 2009

Я хочу иметь возможность переопределить метод получения для свойства строки в одной из моих базовых моделей данных, а внутри метода получения мне нужно выяснить значение этого свойства.

@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.

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

Ответы [ 3 ]

27 голосов
/ 18 декабря 2009

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

2 голосов
/ 13 марта 2012

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

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

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

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

1 голос
/ 18 декабря 2009

Создатель управляемого объекта в x-code имеет флажок, который обычно не проверяется только для этой цели.

Методы проверки http://www.nwcode.com/img/ValidationMethods.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...