Я пытаюсь выяснить, как внедрить ресурсы в экземпляры подкласса NSManagedObject, но не могу найти разумный способ.
Проще говоря, у меня есть объект, который представляет службу, которую требуют методы поведения сущности. Эта служба должна быть доступна во время выполнения.
В Plain-Old-Objective-C-Object я бы просто передавал этот объект в качестве аргумента конструктора или устанавливал его через свойство после конструирования. Аналогично тому, сколько объектов требует и использует делегат.
Однако awakeFromInsert и awakeFromFetch, очевидно, не принимают параметров, и я не могу найти где-нибудь, чтобы подключиться к NSManagedObjectContext для настройки NSManagedObjects после инициализации.
У кого-нибудь есть решение для этого?
В качестве полностью надуманного примера:
@interface ProductEntity : NSManagedObject
@property (nonatomic, retain) NSNumber *unitPrice;
@property (nonatomic, retain) MyTaxCalculatorService *taxCalculatorService;
- (void)grossPriceForUnits:(NSUInteger)units;
@end
@implementation ProductEntity
@dynamic unitPrice;
@synthesize taxCalculatorService
- (void)grossPriceForUnits:(NSUInteger)units
{
return [self.taxCalculatorService grossAmountForUnitPrice:self.unitPrice quantity:units];
}
@end
Не обращая внимания на то, является ли это наилучшим способом расчета цен брутто (это надуманный пример), как я могу получить экземпляр taxCalculatorService в ProductEntity? Я не могу переопределить init, и я не могу найти нигде, где я мог бы постоянно вызывать [entity setTaxCalculatorService: service].
Мысли