繁体   English   中英

QML QObject在能够处理信号之前被破坏

[英]QML QObject destroyed before being able to process a signal

在QML中,我使用的是C ++库,该库返回一个QObject,该对象执行处理并在完成时发出信号。 在javascript中,我使用发出信号( success )的connect方法来附加一个匿名函数,该函数应处理该信号,如以下代码所示:

var requestResponse = apiClient.execute(reqInp);
requestResponse.success.connect(function success(response) 
{
        var requestResponseJSON = JSON.parse(response.responseAsJsonString());
        this.append(response.responseAsJsonString());
});

我的问题是,有时包含此方法的QML项在C ++代码能够完成之前就已被销毁,因此,在发出信号时,匿名函数会导致错误,因为它会调用未定义的方法(在我的示例中,方法append )。 我在iOS中遇到了一些令人讨厌的崩溃,我怀疑这可能是造成它的原因。

创建函数的对象被破坏时,是否有一种强制断开信号的方法?

var requestResponse = apiClient.execute(reqInp);
function myFunction(response) 
{
        var requestResponseJSON = JSON.parse(response.responseAsJsonString());
        this.append(response.responseAsJsonString());
}
requestResponse.success.connect(myFunction);
requestResponse.destroyed.disconnect(myFunction)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM