La classe A a un format UII.Utilisation incorrecte de variables statiques?
classe B a une référence statique à une classe de type A.
Avant la classe B est instancié, je veux appeler une méthode statique dans la classe B pour assigner une instance de la classe A.
+ (void)setClassAReference:(ClassA*)classA
{
classA_ = classA;
}
Est-ce possible? Avant de plonger dans mon projet actuel, j'ai créé un exemple, et j'ai pu définir une valeur entière, puis instancier B avec lui en gardant la valeur stockée et en permettant l'accès à celui-ci.
Cependant, dans mon projet actuel, XCode refuse de me permettre de passer une valeur entière:
méthode non-statique en classe A:
- (UIImage*)imageWithIdentifier:(ImageIdentifier)identifier; // identifier is enum type
Après la classe B est instancié, je tente de appeler une méthode dans A:
UIImage *img = [classA_ imageWithIdentifier:ImageIdentifier_Foo];
Mais j'obtiens un avertissement de conversion implicite. L'auto-complète montre (id) au lieu de (ImageIdentifier). J'ai triplé toutes mes signatures de méthodes et toutes utilisent le type enum. Est-ce que j'utilise incorrectement des variables statiques ou y a-t-il un autre problème? Je réalise que je pourrais utiliser un singleton, mais je préférerais ne pas le faire si possible.
J'ajoute la déclaration enum ici: *
typedef enum
{
ImageIdentifier_Foo = 0,
ImageIdentifier_Bar
} ImageIdentifier;
vrais noms * changés pour protéger les innocents.
Pourquoi le _class_ 'B' doit-il avoir une référence à une instance de A avant qu'une instance de B soit créée? Chaque instance de 'B' aura alors l'instance _same_ de' A'. –
'A' contient quelques images différentes utilisées par plusieurs sous-classes de 'B.' Je veux rendre les classes réutilisables, de sorte que chaque application puisse avoir des noms d'images différents. Je veux éviter que chaque sous-classe n'envoie le même nom d'image à chaque fois que l'on est créé en ne l'envoyant qu'une fois dans une méthode statique. – TigerCoding