There's a class called ObjcPtr that's used to translate to/from such arguments. Google around for that word and you'll find sketchy documentation. Here's an example of stuffing a value into such an "out" parameter:
def getObjectValue_forString_errorDescription(objptr, s, errdesc)
case s.to_ruby.downcase
when 'yes': objptr.assign(true)
when 'no': objptr.assign(false)
else return false
end
true
end
To pull an object out of a pointer-to-object, you do this:
def observeValueForKeyPath_ofObject_change_context(
keyPath, object, change, rawContext)
context = rawContext.cast_as('@')
puts "Context: #{context.inspect}"
end
The '@' identifies the thing-being-pointed-to as an object. There are other symbols to identify things like raw machine integers, etc. I forget where you find them, but they're not RubyCocoa-specific, so they're somewhere in Apple documentation.
For non-objects there are also methods like "int_at", "bool_at", "bool", and "int". I haven't had reason to use them yet, so I don't know the details.
···
On Dec 17, 2008, at 12:13 PM, Christophe Mckeon wrote:
error:(NSError **)outError
is there a standard way of handling it? is this
kind of thing documented anywhere?
-----
Brian Marick, independent consultant
Mostly on agile methods with a testing slant
www.exampler.com, www.exampler.com/blog, www.twitter.com/marick
-----
Brian Marick, independent consultant
Mostly on agile methods with a testing slant
www.exampler.com, www.exampler.com/blog, www.twitter.com/marick