erreur: propriété « myBoolVariableName » avec « conserver » attribut doit être de type d'objet

voix
12

J'ai une valeur booléenne dans ma définition @interface dans mon fichier .h. Ici, il est ci-dessous. Il a le même problème que ce soit un pointeur ou non.

@interface myCustomViewController : UIViewController <UIWebViewDelegate> {
{
 //...more iboutlets defined above
 BOOL *myBoolVariableName;
}

Quand je compile, je reçois « erreur: propriété « myBoolVariableName » avec « conserver » attribut doit être de type d'objet » sur la ligne pour l'importation de mon fichier .h.

J'ai trouvé cette page ici d'un nombre entier / NSNumber:

http://discussions.apple.com/thread.jspa?threadID=1846927

Il semble donc je ne peux pas utiliser des valeurs booléennes dans une définition @interface. Que puis-je utiliser à la place?

Que dois-je faire pour les valeurs booléennes / booléens?

Créé 27/08/2009 à 01:21
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
33

Je devine que plus tard dans l'interface que vous avez quelque chose comme ceci:

@property (retain) BOOL *myBoolVariableName;

Cela signifie faire une propriété qui est la valeur est un pointeur sur une BOOL et retain sémantique.

Votre problème est que BOOL * est un pointeur sur un octet de mémoire, pas un pointeur sur un objet. Et de retenir est quelque chose qui applique uniquement aux objets.

Voici comment vous pouvez faire une propriété BOOL.

@interface myCustomViewController : UIViewController <UIWebViewDelegate> {
    BOOL myBoolVariableName;
}

@property myBoolVariableName;

@end

Les différences importantes sont que la variable est déclarée comme « BOOL », et non « BOOL * » et la propriété ne dispose pas (conserver).

Créé 27/08/2009 à 01:30
source utilisateur

voix
1

J'ai fait face à la même situation. Je l'ai résolu comme,

@interface myCustomViewController : UIViewController {
BOOL myBoolVariableName;
}
@property BOOL myBoolVariableName;
@end

Je me réfère une réponse par Jon Hess mais je suis une erreur en elle. Nom du type nécessite un prescripteur ou qualifié. Ma version précédente était comme,

@property myBoolVariableName;

J'ai donc ajouté BOOLet résolu la question.

Créé 30/04/2013 à 12:46
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more