大家好,
我的一段代码报了如下错误:
SomeTables[2553:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString setFrame:]: unrecognized selector sent to instance 0x4b52550'
其实我写的代码中并没有setFrame这个方法。堆栈中的调用都是系统的方法,经过反复看代码发现其实错误在这里,我写的一个回调函数的返回值写错了:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;{
return [keys objectAtIndex:section];
}
我错误的把一个非UIView的object返回了。
但是这个是我在看了很多遍代码后找到的错误,请问各位,有没有一个方法可以从zombie、内存、堆栈中发现这个错误的原因呢?
谢谢各位。
------解决方案--------------------
1 libobjc.A.dylib 0x00cbc5c2 objc_exception_throw + 47
这一行就是抛出异常,如果设置了断点,应该就会触发.
确认应用是在debug模式下运行,并且查看断点设置里objc_exception_throw libobjc.A.dylib已经打钩
------解决方案--------------------
NSInvalidArgumentException 这个就说明了是类形不对的导常了吧, 再打打报错误的位置就ok啦!
------解决方案--------------------
很明显,这个方法返回的是一个uiview ,而你返回的肯定是NSString类型,80%是这个类型,如果想指定header的title得换另外个方法