Каков наилучший способ хранения информации о шрифтах надписей в Cocoa-Touch в соответствии с парадигмой MVC?
В моей модели данных я хотел бы сохранить информацию, отображаемую в пользовательском представлении, как UILabel
s. Очевидно, что текст метки принадлежит модели данных. Но где я должен хранить информацию о соответствующем шрифте (и в моем случае также цвет)? Они "принадлежат" к модели данных или скорее к представлению?
Причина, по которой я спрашиваю, заключается в следующем: если я просто добавлю свойство класса UIFont
в свою модель данных, у меня возникнут проблемы при сериализации и копировании моих данных (поскольку UIFont
не реализует NSCoding
и NSCopying
протоколы), тогда как другие классы, которые я обычно использую для своих моделей данных, делают. (Эта проблема не существует для UIColor
, поскольку у него уже есть NSCoding
, и он может легко добавить NSCopying
, хотя все равно можно было бы спросить, должен ли цвет принадлежать "модели данных.)
В общем, я хотел бы иметь возможность сериализовать все свойства моих моделей данных, и это, кажется, очень распространенный и общий шаблон в MVC. Конечно, я мог бы также написать абстракцию информации о шрифте вместо непосредственного использования UIFont
в качестве свойства в моей модели данных. Но мне интересно, как лучше использовать MVC на iOS в таком случае.
Обновление: Спасибо за ответы. Я решил использовать реализацию «модели стиля» в тех случаях, когда считаю, что имеет смысл хранить информацию о шрифтах в моделях. Чтобы преодолеть трудности, упомянутые выше, я просто написал категории для двух классов, см. эту ссылку .