我觉得这是一个需要特别注意的问题...我的Google-fu非常好,但我没有得到任何有用的东西.
这是最简单的事情,但我似乎无法弄清楚问题是什么.
我有一个UITableView.这是我的VC调用_form的子视图.我将它用于样式目的,而不是真正用于显示数据.它有2个细胞.
在某个事件上,我正在尝试使用selectRowAtIndexPath:animated:scrollPosition选择不同的单元格.
当我这样做时,它就是SIGABRTS.
一个简单的例子:
- (IBAction)submitClicked:(id)sender
{
[_submit setTitle:@"Wha!?" forState:UIControlStateNormal];
NSIndexPath *row = [NSIndexPath indexPathWithIndex:0];
NSLog(@"%d", [[_form indexPathForSelectedRow] row]);
[_form selectRowAtIndexPath:row animated:YES scrollPosition:YES];
}
Run Code Online (Sandbox Code Playgroud)
按钮的标题已更改,并且该表打印所选行为0或1,但在尝试选择所需的单元格时,它会中断:
2012-03-09 21:57:39.905 <omitted>[16329:207] 0
2012-03-09 21:57:39.908 <omitted>[16329:207] *** Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableViewSupport.m:2598
(gdb)
Run Code Online (Sandbox Code Playgroud)
我的假设是,这意味着我的表格配置方式有问题,但我不确定是什么.通常(单击它)选择表格中的单元格正在工作,如我的tableView:didSelectRowAtIndexPath中的预期响应所示.除了这个之外,其他所有东西都能正常运行.
(另外,我其他人用额外的调试信息回复,而不只是"(gdb)".我怎么能得到这个?)
谢谢!
好吧,经过3个小时的研究,我即将疯狂,所以我觉得是时候将它传递给一些新的眼睛了.
CXXFLAGS = -g -Wall
OBJS = main.o
PROG = test
INCLUDES = -I /usr/include/mysql -I /usr/local/include
LIBS = -L /usr/lib/mysql -l libmysqlclient.so.15.0.0 -L /usr/local/lib -l libmysqlpp.so.3.1.0
all: $(PROG)
${PROG}: $(OBJS)
$(CXX) $(INCLUDES) -o $(PROG) $(OBJS) $(LIBS)
clean:; $(RM) -f $(PROG) core *.o
Run Code Online (Sandbox Code Playgroud)
包含路径有问题,因为我在/ usr/include/mysql中明显存在时会遇到mysql_version.h不存在的错误.
它说,检查输出的第一部分
g++ -g -Wall -c -o main.o main.cpp
Run Code Online (Sandbox Code Playgroud)
这让我觉得我在Makefile中格式化了一些错误的东西(由于额外的空格和缺少include/library路径).但是,我查看了很多关于Makefile和g ++选项的手册和文章......没有进展.
我认为这应该是一个简单的修复.请帮忙(你感觉到我的绝望吗?).
另外,你认为有必要特别指定库吗?我在XCode中运行这些东西很好,但我正在尝试将代码迁移到我的Web服务器...... Makefile已经停止了所有进度,我认为这是我应该学习的东西.