Je veux savoir si cette affectation est correctePeut int valeur est affectée à id type + Objectif c
id var = 9;
Est-ce que var affecter la valeur 9 ou devons-nous envelopper dans une classe wrapper comme NSNumber?
Je veux savoir si cette affectation est correctePeut int valeur est affectée à id type + Objectif c
id var = 9;
Est-ce que var affecter la valeur 9 ou devons-nous envelopper dans une classe wrapper comme NSNumber?
Il est possible, mais il est incorrect:
warning: initialization makes pointer from integer without a cast
Un id
est un pointeur vers un objet, pas un entier.
id
pour porter un nombre entier? Vous devriez plutôt utiliser NSNumber
.9 est un littéral entier, qui n'est pas un objet. id
est un pointeur vers un objet. Si vous devez passer un entier comme un objet (type id
), vous devez l'envelopper dans un objet NSNumber
comme ceci:
id var = [NSNumber numberWithInteger: 9];
id var = @9;
fonctionne aussi. @9
est équivalent à [NSNumber numberWithInt:9]