2009-02-12 9 views
0

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é?

Répondre

1

Cela semble trop simple, mais si baddieArray est nul, alors les adds seront ignorés et l'interrogation de sa taille retournera zéro.

Je réalise que vous montrez une allocation raisonnable pour les tableaux, mais est-ce que quelque chose pourrait leur être arrivé après ce point?

+0

oh putain, je me sens idiot. Mon tableau inits était au mauvais endroit. DOH! –

+0

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

+0

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

1

Avez-vous placé un point d'arrêt près de // end et vérifié que les tableaux ne sont pas nuls?

+0

oui, ils sont montrés comme ayant 0 objets dedans. –

Questions connexes