J'apprends l'Objective-C et j'ai rencontré un problème.Ajout d'objets au tableau nsmutable, mais le tableau est toujours vide
J'ai créé un objet personnalisé appelé "Baddie". J'essaie d'ajouter l'objet à un couple de tableaux mutables.
Baddie *b1 = [[Baddie alloc]initWithTag:4444 pos:cpv(450,270) dir:cpv(0,1)];
[baddieArray addObject: b1];
[baddieWaitingArray addObject: [[Baddie alloc]initWithTag:4447 pos:cpv(450,270) dir:cpv(0,1)]];
[baddieWaitingArray addObject: [[Baddie alloc]initWithTag:4448 pos:cpv(450,270) dir:cpv(0,1)]];
//end
A la fin, les deux tableaux semblent vides. Les tableaux ont été initialisés précédemment comme suit:
baddieArray = [[NSMutableArray alloc] init];
baddieWaitingArray = [[NSMutableArray alloc] init];
Je ne sais pas pourquoi les tableaux sont vides. Le pointeur sur b1 pointe toujours sur l'objet. Je peux toujours en récupérer des propriétés. Où ai-je mal tourné?
oh putain, je me sens idiot. Mon tableau inits était au mauvais endroit. DOH! –
En tant que défenseur de l'école «S'il vous plaît, donnez un coup de pied si je fais quelque chose de mal», la capacité de réussir à envoyer des messages à zéro dans Objective-C me dérange. Ce type de confusion résulte. – Darron
L'envoi d'un message à zéro n'est pas nécessairement incorrect, cependant. Il y a un coût pour le gonflement du code de milliers de chèques zéro qui n'existe pour aucune autre raison que parce que néant une exception dans votre langue. Il est possible, cependant, de faire nil répondre différemment en Objective-C. – Chuck