bb10级联清除GroupDataModel崩溃
bb10 cascades clear GroupDataModel crash
我正在开发黑莓10应用程序。我在使用GroupDataModel时遇到一些问题。
这是代码:
GroupDataModel *searchModel;
if (searchModel != NULL){
qDebug() << "Masuk sini";
searchModel->clear();
}
searchModel = new GroupDataModel(
new QListDataModel<QString>(
QList<QString>() << "suburbName" ));
QVariantMap map;
for (int i = 0; i < list.size(); ++i) {
QVariantMap x = list.at(i).toMap();
map["suburbName"] = x.value("address").toString();
qDebug() << x;
qDebug() << map;
searchModel->insert(map);
}
searchList->resetDataModel();
searchModel->setGrouping(ItemGrouping::None);
searchList->setDataModel(searchModel);
这个代码不止调用过一次。所以当它被调用时,我必须清除GroupDataModel。但它总是崩溃。当我调试时,问题是当searchModel->clear();我已经试过用free(searchModel)替换它,但崩溃仍然会发生。
崩溃显示:分段故障
有人请帮帮我!我已经和这个问题斗争了好几天了。
感谢
谨致问候,瑜伽
你做这件事的方式不对。如果您想在类中重用searchModel对象,请使其成为成员变量,然后只执行您的任务。
您必须用NULL初始化GroupDataModel指针。否则,指针会被分配一些仍在内存中的随机值。如果访问未初始化的指针,则会出现分段错误。
GroupDataModel *searchModel = 0;
由于取消引用未初始化的指针,代码崩溃。当调用CCD_ 2时,CCD_。
如果您的代码被多次调用,那么最好将searchModel
声明为成员变量:
GroupDataModel *searchModel;
然后,您需要初始化它,例如在包含类的构造函数中,但不在多次调用的函数中,因为您只需要GroupDataModel的一个实例。
searchModel = new GroupDataModel(QStringList() << "suburbName" );
然后您的代码的其余部分应该可以工作了。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- Visual Studio在尝试读取resource.txt文件时崩溃
- 将方法转换为调用该方法的成员函子对象会导致崩溃