Добрый день!
У меня есть приложение, в основном написанное на QML, и использующее несколько расширений, написанных на С++.
Одно из расширений является контейнером для моих типов: Item и ItemBox соответственно.
ItemBox содержит в себе QList для хранения указателей на Item.
При старте приложения у меня создается ItemBox и вызывается метод fillBox, в котором парсится файлик xml и с помощью полученной информации создаются элементы Item.
Выглядит это так:
main.qml:
ItemBox {
id: itemBox
Component.onCompleted: fillBox()
}
В самом приложении у меня есть несколько экранов, один из них ( к примеру - TargetScreen) использует ItemBox для получения элементов. Для этого ItemBox имеет методы getItem(int) и itemsCount().
Имеет место следующая ситуация: При открытии приложения ItemBox заполняется, все нормально. Далее я открываю TargetScreen, происходит получение элементов у ItemBox - все нормально. Далее открывается другой экран, и снова TargetScreen - и тут приложение падает. Падает на вызове метода QList::at(int), которые используется в ItemBox::getItem(int).
Не могу понять, что происходит с памятью.
Есть у кого-нибудь идеи?
c++, qml, qt