everytime I call the method -(void)setArrayCheckOut:(int)num in another class the array arrayCheckout is empty. Calling -(IBAction)reloadTable:(id)sender after -(void)setArrayCheckOut:(int)num "results in reload table - (null), 0".
Any idea what goes wrong?
so long
@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
If the array were empty, objectAtIndex:0 would throw an exception.
Since it doesn't, but returns nil, you don't have an array: You have sent the objectAtIndex: message to nil.
Most probably, CheckOut is not the sort of class whose instances are initialized by init. Check the documentation for its superclass to see what its designated initializer is, then override that instead.
加载中,请稍侯......
精彩评论