【问题标题】:Convert Dynamic Object to StringMap将动态对象转换为 StringMap
【发布时间】:2017-06-09 16:33:34
【问题描述】:

我正在使用 OpenFl 将 StringMap 保存到 SharedObject

保存到 SharedObject

SO.data.users_arr = new StringMap<Dynamic>();
SO.data.users_arr.set("user1",{varOne:1,varTwo:2});

从 SharedObject 中检索

var users_arr : StringMap<Dynamic> = cast(SO.data.users_arr, StringMap<Dynamic>);

检索给我一个错误:

[Fault] exception, information=TypeError: Error #1034: Type Coercion failed: cannot convert Object@b868371 to haxe.ds.StringMap.
lib/sim/model/SOControl.hx:37: characters 20-21 : Unexpected .

问题是:如何从动态对象重新转换之前保存的 StringMap?

谢谢!

【问题讨论】:

  • 你尝试过不安全的演员var users_arr : StringMap&lt;Dynamic&gt; = cast SO.data.users_arr;吗?
  • 否则我建议只使用Dynamic 而不是StringMap。

标签: haxe openfl


【解决方案1】:

最简单的解决方案可能是使用Serialization mechanism built into Haxe。下面是一些伪代码:

保存:

SO.data.users_arr = Serializer.run(users_arr);

加载中:

var users_arr:StringMap<Dynamic> = Unserializer.run(SO.data.users_arr);

【讨论】:

  • 是的,我认为应该这样做。我认为有一种无需序列化的方法。谢谢。
猜你喜欢
  • 2012-05-15
  • 2016-08-02
  • 1970-01-01
  • 2012-10-21
  • 2011-06-15
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多