How To Call Objective-C Methods From Ruby
To invoke an Objective-C method, you replace each colon in the method name except the last with an underscore. Thus, for example, the NSWindow instance method initWithContentRect:styleMask:backing:defer:
becomes initWithContentRect_styleMask_backing_defer
.
All Cocoa classes and functions belong to OSX
module, so for example, the Objective-C code:
will become:
OSX::NSWindow.alloc.initWithContentRect_styleMask_backing_defer(frame, OSX::NSTitledWindowMask, OSX::NSBackingStoreBuffered, false)As you can see, this decreases the code readability by rendering Objective-C parameter naming useless. So, there is another convenient way to write the method calls — the objc_send
method, which accepts Ruby symbols as parameter names. For example, the previous code can also be written as:
Read more about this topic: RubyCocoa
Famous quotes containing the words call, methods and/or ruby:
“One day my mother called me ... and she said, Forty-nine million Americans saw you on television tonight. One of them is the father of my future grandchild, but hes never going to call you because you wore your glasses.”
—Lesley Stahl (b. 1941)
“The ancient bitter opposition to improved methods [of production] on the ancient theory that it more than temporarily deprives men of employment ... has no place in the gospel of American progress.”
—Herbert Hoover (18741964)
“A man in the house is worth two in the street.”
—Mae West, U.S. actor, screenwriter, and Leo McCarey. Ruby Carter (Mae West)