【发布时间】:2013-05-13 04:34:25
【问题描述】:
我正在构建一个算术应用程序,其中有用于数字和数字的 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);
}
代码工作得很好,但我觉得从模型中保存指向视图的指针并不是一个好习惯,即使模型本身没有使用它。
如果这是不好的做法,潜在的陷阱是什么,是否有更好的方法来实现这种类型的结束?
【问题讨论】:
标签: ios objective-c model-view-controller cocoa-design-patterns