我已经实现了选择器alertDidEnd:returnCode:contextInfo:
。最后一个参数 contextInfo 是一个空指针。在调用该方法之前,我将指针放在一起如下。
# in windowShouldClose
p = Pointer.new(:boolean)
p.assign(true)
然后我调用该方法,它的主体内部有以下内容:
# in alertDidEnd
puts p[0] # => a number like 245
puts p.cast!('B')[0] # => false (rather than true)
我究竟做错了什么?这是因为调用方法(windowShouldClose)在这个选择器有机会(只是猜测)之前在它自己的线程中完成了吗?
或者我应该将指针创建为对象指针?
# make a pointer to an object and assign to it the instance of TrueClass
p = Pointer.new(:id)
p.assign(true)
我已经阅读了O'reilly Macruby Book对此的看法。
谢谢!