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?
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.
@property (nonatomic, assign) BOOL locationUseBool;
Pas d'astérisque, pas de copie, pas de conservation.
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.