F8Framework
F8Framework copied to clipboard
FF8.Storage如果仅设置了私有数据,并且数据类型为struct,将无法读取
FF8.Storage如果仅设置了私有数据,并且数据类型为struct,将无法读取 直觉告诉我这有问题,我的测试代码如下:
FF8.Storage.Clear();
StructInfo Info1 = new StructInfo("initial_ZIM_1");
//FF8.Storage.SetObject("Key5", new StructInfo("anyone")); // 取消这行注释,将可以正常工作
// 设置UserId,用户私有的Key
FF8.Storage.SetUser("1");
FF8.Storage.SetObject("Key5", Info1, user: true);
// 取出数据
FF8.Storage.SetUser("1");
StructInfo info1 = FF8.Storage.GetObject<StructInfo>("Key5", user: true);
LogF8.Log(info1.Initial);
运行代码,日志会打印空字段 而如果将代码中第三行取消注释,则可以正常工作 另外,struct类型改为class似乎一样无法工作
最后,感谢您的框架开源和无私奉献,这对我这类unity新手来说很有帮助
找到问题了,获取数据的key拼接user,下个版本修复。PlayerPrefs.HasKey(key)改为PlayerPrefs.HasKey(GetKeywords(key, user))即可。
public T GetObject<T>(string key, bool user = false)
{
if (PlayerPrefs.HasKey(key))
{
string jsonString = PlayerPrefs.GetString(GetKeywords(key, user));
return Util.LitJson.ToObject<T>(jsonString);
}
return default(T);
}
非常感谢您解决这个问题