Я создаю арифметическое приложение, и в нем есть подклассы NSObject
для чисел и цифр. Оба из них имеют соответствующие объекты представления, которые принимают источник данных (число или цифру) и делегат, контроллер представления.
Я обнаружил, что полезно заставить представления и модель работать вместе, чтобы установить представления цифр как свойство соответствующих им цифр.
Например, класс Number имеет свойство NSMutableArray
, которое содержит его цифры.
Если я хочу найти размер для соответствующего NumberView, я могу написать такой код в контроллере:
-(void) updateNumberViewFrameSize:(ACNumberView*) sender
{
NSUInteger i;
float width = 0, height = 0;
for (ACDigit* digit in [sender.dataSource returnNumberViewDataSource].digitArray)
{
width += digit.digitView.size.width;
height += digit.digitView.size.width;
}
sender.frame = CGRectMake(sender.frame.origin.x, sender.frame.origin.y, width, height);
}
Код работает просто отлично, но я считаю, что не рекомендуется удерживать этот указатель на представлении из модели, даже если модель сама его не использует.
Если это плохая практика, каковы потенциальные ловушки и есть ли лучший способ достичь этого типа?