web-dev-qa-db-fra.com

Comment définir une propriété de type booléen dans la classe Objective C

Comment utiliser une propriété booléenne dans la classe Objective C, je l'ai fait comme:

@property (nonatomic, copy) BOOL *locationUseBool;

mais cela donne une erreur qui:

La propriété avec l'attribut 'copy' doit être de type objet.

quelle est la bonne façon de déclarer?

23
Firdous

Vous pouvez également déclarer de cette façon.

@property (assign) BOOL locationUseBool;

Fondamentalement, si vous dites non atomique et que vous générez les accesseurs à l'aide de @synthesize, alors si plusieurs threads tentent de modifier/lire la propriété à la fois, des problèmes peuvent survenir. Vous pouvez obtenir des valeurs partiellement écrites ou des objets sur-publiés/conservés

Dans un programme multithread, une opération atomique ne peut pas être interrompue partiellement, contrairement aux opérations non atomiques.

27
Kamleshwar
@property (nonatomic, assign) BOOL locationUseBool;

Pas d'astérisque, pas de copie, pas de conservation.

25
bneely

Celui-ci a fonctionné pour moi.

@property (nonatomic) BOOL locationUseBool;

Il n'y a pas de symbole astérisque * dans la déclaration de propriété. De plus, l'utilisation de "assign" est facultative.

1
Jayprakash Dubey