Lorsque mon programme accède à la ligne: [userNumSequence addObject: [NSNumber numberWithInteger: sequenceNumber]]; il obtient l'erreur: Signal reçu du programme: "EXC_BAD_ACCESS".Obtention d'une erreur lors de l'ajout d'un numéro NSNumber à un tableau
Tout ce que je veux faire est de stocker un entier dans le tableau.
// JBNumberGeneration.m
#import "JBNumberGeneration.h"
@implementation JBNumberGeneration
- (id) init{
if (self = [super init]){
userNumSequence = [NSMutableArray arrayWithCapacity:0];
} return self;
}
-(IBAction)logSequenceNumber:(id)sender{
NSString *titleOfButton = [sender title];
int sequenceNumber = [titleOfButton integerValue];
i=0;
[userNumSequence addObject:[NSNumber numberWithInteger: sequenceNumber]];
//int currentNum = [((NSNumber*)[userNumSequence objectAtIndex: i]) integerValue];
//NSLog(@"%i", currentNum);
int count = [userNumSequence count];
NSLog(@"Array size: %i", count);
i++;
}
@end
// JBNumberGeneration.h
#import <Cocoa/Cocoa.h>
@interface JBNumberGeneration : NSObject {
IBOutlet NSTextField *displayLabel;
int randNum;
int level;
int i;
NSMutableArray* userNumSequence;
}
-(IBAction)logSequenceNumber:(id)sender;
@end
Merci pour l'aide, cela a fonctionné parfaitement. – JoeMBlair
Pas de problème. La gestion de la mémoire Objective-C peut être un peu bizarre si vous n'y êtes pas habitué. –
Désolé, vous avez tord. init n'appelle pas automatiquement retain. Alloc a une retenue implicite, pas init. Il est également considéré comme une mauvaise idée d'utiliser les propriétés dans init. C'est bien mieux dans ce cas juste pour allouer et initialiser le tableau dans init. – JeremyP