2010-11-30 58 views
0

我有一个名为layers 的实例对象,它是一个Layer对象的数组。复制类对象

我尝试以下方法,我也得到一个错误,说我试图转储类方法:所以它不是试图挽救attr_accessor中

@best_copy = Marshal.load(Marshal.dump(@layers)) 

TypeError: no marshal_dump is defined for class Method 

我怎么做呢, 但实际的对象?

回答

1

它看起来像一个或多个图层有一个实例变量是一个方法。这听起来是对的吗? Marshal发送一个对象marshal_dump以获取编组数据,然后对象的属性也获得marshal_dump以获取他们的数据。方法不能编组,所以当进程到达对象的那个部分时,它会挂起来尝试编组你的方法。

+0

啊是啊..我只是意识到..我有一个函数指针。 attr_accessor:fptr。有没有其他的选择?除了删除函数指针,或保存对象的各个部分。 – Flethuseo 2010-11-30 18:47:52