什麼是存儲標籤的字體信息在可可觸摸以下的MVC模式的最佳實踐?哪裏存儲標籤字體信息 - 在模型或視圖?
在我的數據模型,我想存儲由一個自定義視圖UILabel
小號顯示的信息。很明顯的是,標籤文本屬於數據模型。但是我應該在哪裏存儲相應的字體(並且在我的情況下也是彩色的)信息?它們「屬於」數據模型還是屬於視圖?
我問原因是這樣的:如果我只是UIFont
類的屬性添加到我的數據模型,我將序列化和複製我的數據(因爲UIFont
沒有實現NSCoding
和NSCopying
協議)時遇到了麻煩,而我通常用於我的數據模型的其他類則可以。 (這個問題不存在UIColor
,因爲一個已經擁有NSCoding
並且可以輕鬆地添加NSCopying
,儘管人們仍然可以問,如果顏色應該「屬於」的數據模型。)
一般來說,我想是能夠序列化我的數據模型的所有屬性,這似乎是MVC中非常常見和普遍的模式。當然,我也可以寫一個字體信息的抽象,而不是直接使用UIFont
作爲我的數據模型中的一個屬性。但是我想知道在這種情況下,iOS上MVC的最佳實踐使用情況。
更新:感謝您的答案。在我認爲將字體信息存儲在模型中的情況下,我決定採用「樣式模型」實現。爲了克服上面提到的困難,我簡單地爲兩個類別編寫了類別,請參閱this link。