В Xcode я использую цели для выпуска нескольких версий приложений, которые имеют общий базовый код и, как правило, имеют разную графику.
то есть. Притворяясь, что у меня есть цель JOHN
и цель DOE
. Я мог бы добавить в пакет разные изображения с именами точно example.png
и настроить каждое из них соответственно. Код не нуждается в каких-либо изменениях таким образом.
UIImageView *image = [UIImageView alloc] initWithImage:[UIImage imageNamed:@"example.png"]];
Если бы вместо этого я назвал каждое изображение в соответствии с другой версией, я бы получил что-то похожее на это:
NSString *imageName;
#ifdef JOHN
imageName = @"johnExample.png";
#else
imageName = @"doeExample.png";
#endif
UIImageView *image = [UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];
Имея несколько версий и много изображений, это быстро становится грязным, а наличие огромного файла с константами кажется мне излишним, поэтому я остановился на первом варианте.
Проблема в следующем:
Во время работы с файлами nibs, Interface Builder просто загружает example.png
случайным образом. Поэтому, если я работаю над целью JOHN
, меня раздражает, что IB только что решил загрузить example.png
из цели DOE
.
Есть ли способ для Interface Builder загружать медиафайлы на основе цели?