Я считаю, что главный ответ успешно перенаправляет не-www на www (ex: mysite.com -> www.mysite.com), но не учитывает поддомены подстановочных знаков, что приводит к:
random.mysite.com -> www.random.mysite.com
Вот решение с / без HTTPS
HTTP
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ http%{ENV:protossl}://www.mysite.com/$1 [L,R=301]
HTTP / HTTPS
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=protocol:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [env=protocol:http]
RewriteCond %{HTTP_HOST} !www.mysite.com$ [NC]
RewriteRule ^(.*)$ %{ENV:protocol}://www.mysite.com/$1 [L,R=301]
* note: я не тестировал https, потому что в настоящее время у меня нет сертификата для тестирования, но если кто-то может проверить или оптимизировать то, что у меня есть, это будет потрясающе.
UIColor не является изменяемым. Я обычно делаю это с цветами, шрифтами и изображениями. Вы можете легко изменить его для использования синглетонов или иметь статический инициализатор.
@interface UIColor (MyProject)
+(UIColor *) colorForSomePurpose;
@end
@implementation UIColor (MyProject)
+(UIColor *) colorForSomePurpose { return [UIColor colorWithRed:0.6 green:0.8 blue:1.0 alpha:1.0]; }
@end
Для простоты я сделал это:
/* Constants.h */
#define myColor [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0]
Не забудьте пропустить ';' так что вы можете использовать его как нормальное выражение.
Я не уверен, что с этим подходом что-то не так с технической точки зрения, но он работает нормально и избегает ошибки инициализатора констант во время компиляции - этот код эффективно застрял на месте, где бы вы ни поместили «myColor», поэтому он не никогда не скомпилируется, пока вы его не используете.
Часто люди помещают глобальные константы в одноэлементные объекты - или, как уже отмечалось, вы можете сделать их доступными с помощью метода класса некоторого класса.
Используйте AppController, чтобы сделать цвета доступными глобально, а не статической переменной. Таким образом, это имеет смысл с точки зрения архитектуры, а также, если вы хотите гипотетически изменить цветовые схемы, даже во время работы, это будет просто один или два метода в AppController