Cela fait longtemps que je n'ai pas fait de programmation. Utilisé pour être 'ok' à la lecture C & C++ ... n'a jamais beaucoup écrit.Objectif fondamental-C question ... me rendre fou
J'ai une classe extrêmement simple que je veux utiliser pour manipuler le contenu d'un tableau (en utilisant NSMutableArray
). Le tableau doit persister en tant qu'objet afin que je puisse y effectuer plusieurs mises à jour pendant une seule exécution de mon programme (ne pas s'inquiéter du stockage des données d'état sur le disque)
Voici mon problème. Je ne suis pas clair sur où/quand je devrais Alloc/Init mon objet Array de sorte qu'il sera dans un état utilisable chaque fois qu'un bouton est cliqué sur la vue de mon iPhone. J'essaie de créer une sous-classe ViewController
qui inclut un tableau en tant que variable d'instance, qui peut ensuite être référencée dans le code qui répond aux clics de bouton de la vue. J'ai essayé 3 approches
J'ai essayé de simplement référencer la variable d'instance de tableau dans une méthode que j'ai écrite dans le cadre de la même classe. Aucun Alloc/Init n'importe où dans cette version du code. Lorsque j'appelle la fonction addObject, elle semble échouer car l'objet tableau n'a pas été alloué/initialisé.
J'ai également essayé d'Alloc/Init une instance de mon objet de tableau dans la méthode
viewWillDisplay
. Le compilateur Xcode se plaint que mon nouvel objet alloué n'est jamais utilisé. Pour les coups de pied, j'ai fait un alloc/init dans le cadre de la méthode 'bouton clic' que j'écris ... mais bien sûr cela alloue une nouvelle instance chaque fois que je clique sur mon bouton.
Voici ce que j'ai dans les .h
et .m
fichiers pour mon exemple (ce scénario montre 1)
apprécierais vraiment si quelqu'un pourrait remplir le vide GIANT j'ai évidemment eu dans ma compréhension de la façon dont les objets Instance Variable sont supposés être utilisés. (Je l'ai lu une grande variété de pommes docs sur Obj-C..etc aussi googlé mon cerveau en essayant de trouver une explication
Le .h:..
#import <UIKit/UIKit.h>
@interface ArrayManagerViewController : UIViewController {
NSMutableArray *buttonArray;
}
- (IBAction)buttonClicked:(id)sender;
@end
Et le .m
#import "ArrayManagerViewController.h"
@implementation ArrayManagerViewController
- (IBAction) buttonClicked:(id)sender {
NSString *senderTitle = [sender currentTitle];
int intSenderTitle = [senderTitle intValue];
[buttonArray insertObject:[NSString stringWithFormat:@"%d",
intSenderTitle]
atIndex:intSenderTitle];
for (id obj in buttonArray)
NSLog(@"Object Value %@", obj);
}
Je ne comprends pas votre question. Voulez-vous savoir comment créer un tableau global ou un singleton? –