为什么UIImageView拥有UIImage.它是否违反MVC原则



MVC的主要原则之一是视图不应该拥有数据。该原理在WWDC会话116中被重复多次。但为什么UIImageView(一个视图)拥有UIImage(一个模型)呢?这难道不违反上述原则吗?

或者我误解了什么?也许仅仅因为UIImageView具有image属性并不意味着它拥有UIImage

单词own通常用于表示一个对象保留了另一个对象。显然,显示图像的视图应该在需要的时候保留该图像。但"所有权"的概念非常有限,并不意味着视图应该负责存储、更改或以其他方式管理图像。

好问题。在我看来,UIImageView并不"拥有"UIImage,但它显然需要对其进行引用。UIImageView并没有实例化图像。

对于具有文本属性(模型)的UILabel(视图),也可以使用相同的参数。

从技术上讲,UIImageView不拥有图像,它保留对图像的副本的引用,以便能够有效地渲染它。UIImage恰好是不可变的,因此副本与原始副本是相同的实例。

UILabel的行为相同,但显式声明其text属性为copy

相关内容

  • 没有找到相关文章

最新更新