gpt4 book ai didi

objective-c - 调用方法后数组为空

转载 作者:行者123 更新时间:2023-12-03 18:03:51 24 4
gpt4 key购买 nike

每次我在另一个类中调用方法-(void)setArrayCheckOut:(int)num时,数组arrayCheckout都是空的。在 -(void)setArrayCheckOut:(int)num“导致重新加载表 - (null), 0”之后调用 -(IBAction)reloadTable:(id)sender

知道出了什么问题吗?

再见

@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

最佳答案

如果数组为空,objectAtIndex:0 将抛出异常。

由于它没有,但返回 nil,因此您没有数组:您已将 objectAtIndex: 消息发送到 nil >.

很可能,CheckOut 不是其实例由 init 初始化的类。检查其父类(super class)的文档以了解其指定的初始值设定项是什么,然后重写它。

关于objective-c - 调用方法后数组为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com