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:
“Slim/Marie Brown: Whadya think youre gonna do?
Harry Morgan: Im gonna get that wallet, Slim.
Marie: Id rather you wouldnt call me Slim. Im a little too skinny to take it kindly.”
—Jules Furthman (18881960)
“I conceive that the leading characteristic of the nineteenth century has been the rapid growth of the scientific spirit, the consequent application of scientific methods of investigation to all the problems with which the human mind is occupied, and the correlative rejection of traditional beliefs which have proved their incompetence to bear such investigation.”
—Thomas Henry Huxley (182595)
“Lay down, lay down the bigly bier,
Lat me the dead look on;
Wi cherry cheeks and ruby lips
She lay an smild on him.
O ae sheave o your bread, true-love,
An ae glass o your wine,
For I hae fasted for your sake
These fully day [is] nine.”
—Anna Gordon Brown (17471810)