Для атрибутов структурных типов, которые может обрабатывать NSKeyValueCoding, я использую шаблон средства доступа к данным Core, описанный в документации Apple здесь .
Например, структура NSRange может быть указана в ядреМодель данных с типом Transformable, тогда для клиентов можно избежать ригматуры NSValue, предоставив методы доступа в подклассе NSManagedObject в форме:
Интерфейс:
@property(assign, nonatomic) NSRange range;
Реализация;
- (NSRange) range {
[self willAccessValueForKey:@"range"];
NSRange retVal = range;
[self didAccessValueForKey:@"range"];
return retVal;
}
- (void)setRange:(NSRange)aRange {
[self willChangeValueForKey:@"range"];
range = aRange;
[self didChangeValueForKey:@"range"];
}
Однако сгенерированные подклассами Mогенератора NSManagedObject объявляют атрибуты Transformable как свойства NSObject, поэтому клиенты должны получать / устанавливать значения NSValues.
Как лучше всегосправиться с этой ситуацией с помощью mogenerator, в то время как (1) придерживаясь простого шаблона Transformable, а не путаясь с переходными вспомогательными атрибутами, и (2) избегая каких-либо правок «машинных» классов Menerator?