在项目中新建一个空的listView, 在插入一个新的item时会调用insertCustomItem,但这个时候的_items的size为0,运行到CCVector中的insert就会抛出异常
CCASSERT(index >= 0 && index <= size(), “Invalid index!”);
CCVector的insert方法:
void insert(ssize_t index, T object)
{
CCASSERT(index >= 0 && index <= size(), “Invalid index!”);
CCASSERT(object != nullptr, “The object should not be nullptr”);
_data.insert((std::begin(_data) + index), object);
object->retain();
}
问题解决了,原因还是代码写的不够规范,在JS中insertCustomItem传入的index不够严格,这个时候如果传入是1那肯定会异常,因为这个时候vector的size是0,所以应该从0开始插入,希望大家以后不要犯类似的错.