chaque fois que j'appelle la méthode -(void)setArrayCheckOut:(int)num
dans une autre classe le tableau arrayCheckout
est vide. L'appel -(IBAction)reloadTable:(id)sender
après -(void)setArrayCheckOut:(int)num
"résultats dans recharger la table - (null), 0".tableau est vide après avoir appelé la méthode
Toute idée de ce qui va mal?
si longtemps
@implementation CheckOut
-(id)init
{
[super init];
tableCheckOut = [[NSTableView alloc]init];
if (!arrayCheckOut)
{
arrayCheckOut = [[NSMutableArray alloc]init];
[arrayCheckOut addObject:@"-"];
}
return self;
}
-(void)setArrayCheckOut:(int)num
{
switch (num) {
case 170:
[arrayCheckOut addObject:@"T20, T20, DB"];
break;
default:
[arrayCheckOut addObject:@"-"];
break;
}
NSLog(@"array = %@",[arrayCheckOut objectAtIndex:0]);
[tableCheckOut reloadData];
}
-(IBAction)reloadTable:(id)sender
{
NSLog(@"reload table - %@, %d",[arrayCheckOut objectAtIndex:0],[arrayCheckOut count]);
[tableCheckOut reloadData];
}
- (int)numberOfRowsInTableView:(NSTableView *)tv
{
return [arrayCheckOut count];
}
- (id)tableView:(NSTableView *)tv
objectValueForTableColumn:(NSTableColumn *)tColumn
row:(int)row
{
NSString *v = [arrayCheckOut objectAtIndex:row];
return v;
}
@end
où est défini arrayCheckOut? Afficher le code –
Nulle part parce que je n'en ai pas besoin. Le tableau ne sera lu par l'application et supprimé complètement avant de le remplir à nouveau. – lueda
Problèmes avec 'setArrayCheckOut:' comprennent un nombre magique (170), les chaînes littérales magiques et non-localisée, l'utilisation de 'int' où' NSInteger' ou 'NSUInteger' pourrait être plus approprié (également un problème dans vos méthodes de source de données) et le nom non descriptif de la méthode. Je suggère de définir des constantes pour le nombre et les chaînes, les chaînes en utilisant localisant 'NSLocalizedString' (car ils semblent être destinés à être exposés à l'utilisateur), le passage à' 'NSInteger' ou NSUInteger', et renommer' setArrayCheckOut: 'quelque chose que indique plus clairement le but de la méthode, plutôt que sa mise en œuvre. –