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:
“I think what everybody calls a miracle is just common sense.... You can look at the attitudes when people come in. Thats why they call it a miracle. These are black kids and theyre not supposed to know the things they know and achieve the way they are achieving.”
—Marva Nettles Collins (b. 1936)
“The philosopher is in advance of his age even in the outward form of his life. He is not fed, sheltered, clothed, warmed, like his contemporaries. How can a man be a philosopher and not maintain his vital heat by better methods than other men?”
—Henry David Thoreau (18171862)
“Its quick silver bell beating, beating
And down the dark one ruby flare
Pulsing out red light like an artery,”
—Karl Shapiro (b. 1913)