我正在经历一个令人沮丧的碰撞在BB10级联。
我有一个“仪表板”页面,其中有一个动态数量的项目。这些项目本身就有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 (用于ticketDefinition)
...
contextActions: [
ActionSet {
ActionItem {
id: actionUnTrack
title: "Remove this Ticket"
onTriggered: {
untrackTicket(bookingRef);
}
}
}
]
...在ticket.qml中,它在实用程序类中调用一个方法untrackTicket,该方法在完成后将调用Dashboard.qml中的refreshTickets()。一旦刷新发生,应用程序就会关闭。
没有记录坠机的记录。
对于如何解决这个问题,有什么建议吗?
发布于 2013-11-20 20:22:41
在untrackTicket中,您是否正在释放使用ticketContainer.add( obj )添加的obj(控件)所指向的内存?
我怀疑坠机事件发生在:
ticketContainer.removeAll();removeAll()文档说:删除容器的所有控件并释放它们的内存。
如果您已经释放了该内存,removeAll将尝试删除已被删除的对象,从而导致崩溃。
https://stackoverflow.com/questions/20100204
复制相似问题