Haxe - ошибка при попытке сериализации объекта после приведения к родительскому типу

Я пытаюсь сделать это:

var player:Player = new Player();  // class Player extends PlayerCore

var playerCore:PlayerCore = cast (player, PlayerCore);
var playerStr:String = Serializer.run(playerCore);

который компилируется, но выдает ошибку времени выполнения:

compile_server.command: line 3:  4267 Bus error: 10           ../bin/Server/Main

В ролях работает, это не удается на линии сериализатора. Кроме этого Std.is(playerCore, PlayerCore) а также Std.is(playerCore, Player) оба верны, я не знаю, ожидаемый ли это результат или нет. Это ошибка Haxe / hxcpp или я что-то не так делаю?

Или, в качестве альтернативы, мне нужно преобразовать объект типа Player в его родительский тип PlayerCore ("убрать из него" функции типа Player) и затем сериализовать его. Есть ли способ сделать это правильно, или мне нужно создать новый объект и скопировать все параметры вручную?

Haxe 3.2.1, hxcpp 3.2.180, mac target

0 ответов

Другие вопросы по тегам