Je suis nouveau à l'objectif C et j'essaie de l'apprendre. J'essaye d'écrire le programme de calculatrice qui effectue le calcul mathématique simple (l'addition, la soustraction et ainsi de suite).Objectif C: Array
Je souhaite créer un tableau stockant des nombres (valeur double) et des opérandes. Maintenant, ma méthode de pushOperand prend ID comme ci-dessous:
-(void) pushOperand:(id)operand
{
[self.inputStack addObject:operand];
}
lorsque je tente de pousser à double valeur comme ci-dessous:
- (IBAction)enterPressed:(UIButton *)sender
{
[self.brain pushOperand:[self.displayResult.text doubleValue]];
}
Il donne mon erreur suivant: "Sending 'double' to parameter of incompatible type 'id'"
Je vous serais reconnaissant si vous les gars peuvent répondre à mes questions suivantes:
'id' est un type générique s o Je suppose que cela fonctionnera avec n'importe quel type sans donner d'erreur ci-dessus. Pouvez-vous s'il vous plaît m'aider à comprendre la véritable raison de l'erreur?
Comment puis-je résoudre cette erreur?
Vous devez également être en mesure d'utiliser le @ sténographie ([self.displayResult.text doubleValue]) plutôt que [ NSNumber numberWithDouble: [self.displayResult.text doubleValue]] pour le rendre un peu plus concis, mais oui, vous ne pouvez pas pousser les primitives dans un tableau d'objectif-C ou passer comme objet-c cible générique (id) car ce n'est pas un objet. – Mike