我有一个QHash<const QString id, MyClass>
, 而 MyClass 只是一些带有 getter 和 setter 的 QString quint8 值的集合。MyClass 也有一个QDataStream &operator<<(QDataStream &ds, const MyClass &obj)
被覆盖的,那里。
要序列化我使用:
typedef QHash<const QString, MyClass> MyClassHash;
//..
QDataStream &operator<<(QDataStream &ds, const MyClassHash &obj) {
QHashIterator<const QString, MyClass> i(obj);
while(i.hasNext())
{
i.next();
QString cKey = i.key();
ds << cKey << i.value();
}
return ds;
}
现在,我对另一个感到困惑:
QDataStream &operator>>(QDataStream &ds, MyClassHash &obj) {
obj.clear();
// ?
return ds;
}
我会知道那个序列化 QHash 的长度吗?