セレクターを実装しましたalertDidEnd:returnCode:contextInfo:
。最後のパラメータ contextInfo は void ポインタです。メソッドを呼び出す前に、ポインターを次のようにまとめます。
# 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がこれについて述べていることを読みました。
ありがとう!