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:
“If but some vengeful god would call to me
From up the sky, and laugh: Thou suffering thing,
Know that thy sorrow is my ecstasy,
That thy loves loss is my hates profiting!”
—Thomas Hardy (18401928)
“In inner-party politics, these methods lead, as we shall yet see, to this: the party organization substitutes itself for the party, the central committee substitutes itself for the organization, and, finally, a dictator substitutes himself for the central committee.”
—Leon Trotsky (18791940)
“It is better to be looked over than overlooked.”
—Mae West, U.S. actor, screenwriter, and Leo McCarey. Ruby Carter (Mae West)