按照 MVC 范式在 Cocoa-Touch 中存储标签字体信息的最佳实践是什么?
在我的数据模型中,我想将自定义视图显示的信息存储为UILabel
s。很明显,标签文本属于数据模型。但是我应该在哪里存储相应的字体(在我的情况下还有颜色)信息?它们“属于”数据模型还是视图?
我问的原因是:如果我只是在UIFont
我的数据模型中添加一个类的属性,我在序列化和复制我的数据时会遇到麻烦(因为UIFont
没有实现NSCoding
andNSCopying
协议),而我通常使用的其他类对于我的数据模型。(这个问题不存在,UIColor
因为人们已经拥有NSCoding
并且可以轻松添加NSCopying
,尽管人们仍然可以询问颜色是否应该“属于”数据模型。)
一般来说,我希望能够序列化我的数据模型的所有属性,这似乎是 MVC 中非常普遍和普遍的模式。当然,我也可以编写字体信息的抽象,而不是UIFont
直接在我的数据模型中用作属性。但我想知道在这种情况下,在 iOS 上使用 MVC 的最佳实践是什么。
更新:感谢您的回答。在我认为在模型中存储字体信息有意义的情况下,我决定使用“样式模型”实现。为了克服上面提到的困难,我简单地为这两个类写了类别,见这个链接。