作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题最初发布在这里: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/
我是一名优秀的程序员,十分优秀!