Ответ 1
Вы пробовали [self primitiveValueForKey:@"status"]
вместо [super valueForkey:@"status"]
?
Я хочу, чтобы иметь возможность переопределить 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.
Каков правильный способ доступа к основному элементу данных в получателе, как это?
Вы пробовали [self primitiveValueForKey:@"status"]
вместо [super valueForkey:@"status"]
?
На всякий случай кто-то ищет немного больше информации о том, как переопределить методы getter и приземлиться на этой странице...
Внутри определения вашего свойства вы можете указать методы getter и setter следующим образом:
@property (nonatomic, retain, getter = getterMethodName, setter = setterMethodName) NSString *someString;
Вы можете указать только геттер, только сеттер или оба.
Созданный управляемый объект в x-коде имеет флажок, который обычно не установлен для этой цели.
Методы проверки http://www.nwcode.com/img/ValidationMethods.png