我有一个XML文件,其中包含一些具有名称和用户列表的组。在我在构造函数中的代码,我设置了一个字典此列表:ReadConfig();
QMap中的项目丢失
void AppConfig::ReadConfig(void)
{
...
while(!reader.atEnd())
{
ReadGroups(reader);
if (dictGroups.isEmpty()) qDebug()<<"ReadConfig_isEmpty";
}
...
这就是:
dictGroups= QMap<QString, QList<QString>>() ;
在headerfile作为
public:
QMap<QString, QList<QString>> dictGroups;
然后我读了文件,它声明我的ReadGroups:
void AppConfig::ReadGroups(QXmlStreamReader &reader)
{
dictGroups.clear();
while(!reader.atEnd())
{
reader.readNext();
if (reader.error())
{
...
}
else
{
if (reader.isStartElement())
{
if (reader.name().toString().toLower()=="group"){
ReadGroup(reader);
if (dictGroups.isEmpty()) qDebug()<<"ReadGroups_isEmpty";
}
}
else if (reader.isEndElement())
{
if (reader.name().toString().toLower() == "groups")
{
if(dictGroups.count()<=0){
QList<QString> users= QList<QString>();
users.append(this->GetUsername());
dictGroups.insert("admin", users);
}
return;
}
}
}
}
}
我的问题是,插入在dictGroups而ReadGroups丢失的项目。我得到调试输出
ReadConfig_isEmpty
但ReadGroups似乎一切正常。 我不知所措,困惑了几个小时,任何人都可以帮忙找到原因吗?
你绝对肯定你插入任何东西到'dictGroups'? – thuga
是的:(我的调试打印我插入消息和ReadGroups_isEmpty不会被写入,并且它不会插入'管理员'用户,如果字典是空的,因为在这一步它不是空的 –
很难说什么没有[SSCCE](http://sscce.org) – thuga