Да, это зависит, поэтому просто некоторые правила большого пальца ...
Do you #define values in a header file?
... в случаях, когда я мог бы захотеть изменить это только локально, например, для констант, цветов, выравниваний, изображений кнопок, ... однако основная причина, по которой я это делаю, - это документация, которую он позволяет, давая локальные определения длинное объясняющее имя
Do you declare them as global variables or not?
... во всех моих приложениях у меня есть класс MainDataManager, который содержит все переменные, которые мне нужны в глобальном масштабе - для части пользовательского интерфейса часто у меня есть собственный глобально используемый объект. Это чрезвычайно полезно, упрощает код и, возможно, является одной из самых важных вещей, которые я узнал на ранних этапах. может также увидеть здесь Использование переменной AppDelegate в качестве глобальной переменной - вопрос относительно освобождения / сохранения
Do you put your values one static class?
... статические классы существуют концептуально. Статические переменные весьма полезны, когда вы хотите дать методу какую-то память. Тем не менее, никто не играет важную роль в моем интерфейсе.
In general
, мне нравится использовать IB для разметки экранов, но в коде указываются все названия кнопок, метки, тексты. Зачем? Потому что, когда мне нужно локализовать приложение, поддерживающее несколько файлов XIB (для каждого языка будет поддерживаться один изолированный файл XIB), становится реальным бременем, даже если в макете только одно изменение.
Все глобальные постоянные настройки всегда хранятся в GloblDefinitions.h, в то же время в моем файле .pch есть эта запись #import "GlobalDefinitions.h"
Таким образом, комбинация переменной-делегата, предоставленной глобально + GlobalDefinitions.h для констант, является моим решением.