我想维护一个lambda函数内的文件。我可以在lambda之外对其进行处理,但只要将它作为参考传递并希望在下载它之后检查它的存在,我的应用程序就崩溃在此行上:if (workFile.exists() && !workFile.remove()) {
。Lambda capture QFile对象
QFile workFile("path/to/file.bat");
[..]
if (!workFile.exists()) {
[..] download file & such
QObject::connect(&mng, &FileManager::onDownload, this, [=, &workFile] (const QString& name) {
if (workFile.exists() && !workFile.remove()) {
qDebug() << "File was not downloaded correctly.";
}
});
}
回溯:
为什么不工作?我应该如何正确捕获QFile?
@Mike良好的抓住,发布它作为答案! – Rusco