gpt4 book ai didi

objective-c - obj-c/cocoa : When I click a button, 无限循环开始,数据似乎已损坏?

转载 作者:行者123 更新时间:2023-12-03 17:34:45 26 4
gpt4 key购买 nike

问题最初发布在这里:http://www.daniweb.com/software-development/objective-c/threads/453854/nstableview-is-not-updating-correctly还有完整的代码。

图形用户界面:

我正在使用 NSMutableArray 来存储填充表单上 NSTableView 的字符串。我正在使用按钮操作来删除指定的行。行是用存储在 int 中的值指定的,当您单击表时该值会更新。

当我单击表单上的按钮时,它会激活此方法:

-(IBAction)removeFromList:(id)sender
{
NSLog(@"count: %d, at: %d\n",count,at);
if(at<count)
{
[list removeObjectAtIndex:at];
}
[_table reloadData];
at=count+1;
count--;
[_label setStringValue:[self converttonsstring:at]];
}

Table指向表,removeFromList是从remove中调用的,int at指定要删除哪一行,list是NSMutableArray,count是总行数。 _label 指向屏幕底部的标签,告诉我 at 指向哪里。我得到以下输出:

2013-05-04 02:32:17.874 ToDoList[571:903] count: 7, at: 2
2013-05-04 02:32:34.763 ToDoList[571:903] *** -[NSCFArray objectAtIndex:]: index (6) beyond bounds (6)

最后一行不断重复。我不知道这里发生了什么,也不知道我应该看什么。据我所知,这是我的项目中唯一不起作用的部分。非常感谢任何帮助或我应该关注的内容。

最佳答案

list 中删除对象后,您不会递减 count 变量,因此 numberOfRowsInTableView: 仍将返回旧值,以便使用数组中不再存在的行调用 tableView:objectValueForTableColumn:row:

关于objective-c - obj-c/cocoa : When I click a button, 无限循环开始,数据似乎已损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16378145/

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