Класс A имеет UIImage.Неправильное использование статических переменных?
Класс B имеет статическую ссылку на класс типа А.
До класса В инстанциируются, я хочу вызвать статический метод класса B, чтобы назначить экземпляр класса А.
+ (void)setClassAReference:(ClassA*)classA
{
classA_ = classA;
}
Возможно ли это?
Прежде чем я углубился в свой текущий проект, я создал образец один и смог установить целочисленное значение, а затем создать экземпляр B, сохраняя сохраненное значение и предоставляя ему доступ.
Однако, в моем текущем проекте, XCode отказывается позволить мне пройти целое значение:
Non-статический метод в классе А:
- (UIImage*)imageWithIdentifier:(ImageIdentifier)identifier; // identifier is enum type
После класса B экземпляра, я стараюсь позвоните по методу A:
UIImage *img = [classA_ imageWithIdentifier:ImageIdentifier_Foo];
Но я получаю предупреждение о неявном преобразовании. Автозаполнение показывает (id) вместо (ImageIdentifier). Я проверил тройные проверки всех моих сигнатур методов, и все они используют тип перечисления.
Я использую статические переменные неправильно или есть еще одна проблема? Я понимаю, что могу использовать синглтон, но я бы предпочел не по возможности.
Я добавления объявления перечислимую здесь: *
typedef enum
{
ImageIdentifier_Foo = 0,
ImageIdentifier_Bar
} ImageIdentifier;
* настоящие имена изменены, чтобы защитить невинных.
Почему _class_ 'B' должен иметь ссылку на _instance_' A' перед созданием _instance_ 'B'? Каждый экземпляр «B» будет иметь экземпляр _same_ 'A'. –
«A» содержит несколько разных изображений, используемых несколькими подклассами «B.» Я хочу, чтобы классы повторно использовались, поэтому каждое приложение может иметь разные имена изображений. Я хочу, чтобы каждый подкласс не отправлял одно и то же имя изображения каждый раз, когда он создается, только отправив его один раз в статическом методе. – TigerCoding