Работает ли функция, если она вызывается не через указатель метода, а напрямую?
Вероятной причиной появления сообщения является то, что функция завершается с KErrNoMemory
, т. Е. -4
, а отпускание перехватывается ловушкой каркаса платформы приложения, что приводит к соответствующему диалогу.
Такой отпуск происходит, например, когда operator new(TLeave)
не может выделить память или нулевой аргумент передается User::LeaveIfNull()
. Иногда вы можете даже увидеть явные User::Leave(KErrNoMemory)
звонки.
Вы можете TRAP()
вызов функции обратного вызова, чтобы поймать оставляет себя. А еще лучше - исправить саму функцию, чтобы она не уходила в нормальных сценариях солнечного дня.
(Кроме того, по соглашению, оставляющие функции имеют суффикс L
. Поскольку вы используете префикс i
для данных экземпляра, вы, вероятно, знаете о соглашениях по именованию Symbian C ++.)