Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除调用事件的QML对象时崩溃_Qml_Blackberry 10_Blackberry Cascades - Fatal编程技术网

删除调用事件的QML对象时崩溃

删除调用事件的QML对象时崩溃,qml,blackberry-10,blackberry-cascades,Qml,Blackberry 10,Blackberry Cascades,我在BB10 cascades上遇到了一次令人沮丧的崩溃 我有一个“仪表板”页面,其中包含大量动态项目。项目本身具有contextActions。其中一个操作是从仪表板中删除该项。但是,当我删除项目时,应用程序只是强制关闭 代码摘录如下: Dashboard.qml ... Container { id: ticketContainer bottomPadding: 20 horizontalAlignment: HorizontalAlignment.Fill } ..

我在BB10 cascades上遇到了一次令人沮丧的崩溃

我有一个“仪表板”页面,其中包含大量动态项目。项目本身具有contextActions。其中一个操作是从仪表板中删除该项。但是,当我删除项目时,应用程序只是强制关闭

代码摘录如下:

Dashboard.qml

...
Container {
    id: ticketContainer
    bottomPadding: 20
    horizontalAlignment: HorizontalAlignment.Fill
}
...
function refreshTickets() {
    ticketContainer.removeAll();
    for (var i=0; i<tickets.length; i++) {
        var obj = ticketDefinition.createObject();
        obj.bookingRef = tickets[i].bookingReference;
        obj.bookingDate = ticket[i].bookingDate;
        ticketContainer.add(obj);
    }
}
在ticket.qml中,它调用实用程序类中的untrackTicket方法,完成后将调用Dashboard.qml中的refreshttickets()。一旦刷新发生,应用程序就会关闭

没有关于崩溃的日志


关于如何解决这个问题有什么建议吗?

在untrackTicket中,您是否正在释放您使用ticketContainer.add(obj)添加的obj(控件)指向的内存

我怀疑坠机发生在:

ticketContainer.removeAll();
removeAll()文档说明:删除容器的所有控件并释放它们的内存


如果已释放该内存,removeAll将尝试删除已删除的对象,因此将崩溃。

谢谢。我在其他地方使用过removeAll,它工作得很好,当其中一个控件负责触发操作时,这似乎只是一个问题。我已经设法通过使用ticketContainer.remove()来修复它,它不会清除对象的内存。这并不理想,但在这种情况下,它应该可以工作,因为我的应用程序不允许每个用户超过2张票证,并且当页面关闭时,票证将从内存中清除。
ticketContainer.removeAll();