Writable atomic property 'result' cannot pair a synthesized setter/getter

muqaddarmuqaddar Administrateur
mars 2011 modifié dans Xcode et Developer Tools #1
Je fais des tests avec la compilation LLVM 2 sur quelques projets.
LLDB va trouver des warnings là  où GDB passait son chemin.

Par exemple, si on définit une @property et son @synthesize, et qu'en plus on décide d'écrire l'accesseur getter ou setter pour ajouter une ligne, il bronche (ce qui est logique).

Writable atomic property 'result' cannot pair a synthesized setter/getter with a user defined setter/getter


Alors même en précisant un setter en plus dans @property, je n'arrive pas à  le taire.

@property (retain, setter=setSettings:) SHKFormFieldSettings *settings;


@synthesize settings;


- (void)setSettings:(SHKFormFieldSettings *)s<br />{<br />	[settings release];<br />	settings = [s retain];<br />	[self setNeedsLayout];	<br />}


En plus, ce n'est même pas mon code.

Réponses

  • CéroceCéroce Membre, Modérateur
    13:32 modifié #2
    Ce n'est pas le problème. Ce qui le gène est la propriété 'atomic'. Si tu déclares la propriété 'nonatomic', le warning disparaà®t.

    Maintenant, la question est de savoir comment on écrit un setter atomique. Peut-être qu'en utilisant NSLock ?
    Une recherche dans la doc s'impose (quand je trouverai le temps).
  • muqaddarmuqaddar Administrateur
    13:32 modifié #3
    Ah ok, j'avais mal compris le message d'erreur.
    Je vais chercher.

    Je propose d'utiliser ce sujet pour regrouper les warnings LLDB/LLVM ou ceux qui ressortent avec Xcode 4...
  • zoczoc Membre
    13:32 modifié #4
    dans 1300263521:

    la question est de savoir comment on écrit un setter atomique.

    @synchronized
  • muqaddarmuqaddar Administrateur
    13:32 modifié #5
    dans 1300263803:

    dans 1300263521:

    la question est de savoir comment on écrit un setter atomique.

    @synchronized


    Merci pour la doc, ça n'a pas l'air simple tout ça. :)
  • cyranocyrano Membre
    13:32 modifié #6
    dans 1300263803:

    dans 1300263521:

    la question est de savoir comment on écrit un setter atomique.

    @synchronized


    mmmm, @synchronized va bcq plus loin que des setter/getter atomic
  • zoczoc Membre
    13:32 modifié #7
    dans 1300264677:

    @synchronized va bcq plus loin que des setter/getter atomic

    Certes, je n'ai pas dit le contraire, mais c'est un moyen simple pour écrire des setters/getters atomiques. Après, pour les types simples (entiers), il est plus efficace d'utiliser les fonctions atomiques fournies par le système (dans OSatomic.h).
  • cyranocyrano Membre
    13:32 modifié #8
    les types entiers sont sur Intel dèja en "lecture/ecriture atomic"
  • cyranocyrano Membre
    13:32 modifié #9
    dans 1300263744:

    Je propose d'utiliser ce sujet pour regrouper les warnings LLDB/LLVM ou ceux qui ressortent avec Xcode 4...


    eh bin,  le topic ne risque pas de s'assécher  :o

    met -pedantic pour voir.
  • AliGatorAliGator Membre, Modérateur
    13:32 modifié #10
    -pedentic a toujours généré beaucoup de warnings, même sous Xcode3.
    On est tellement pas habitués à  se limiter à  du C99 et du C pur ISO...
  • cyranocyrano Membre
    13:32 modifié #11
    dans le genre mini bug maxi chiant:

    le menu "methode", selectionne bien la methode mais ne fait pas de scrolling  >:)
Connectez-vous ou Inscrivez-vous pour répondre.