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