Why not use a constructor and let the compiler manage the
boilerplate?
this(NSRect frame) [initWithFrame:] {
//my stuff
super(frame);
}
This should emit the same code as the function above (but I
haven't tested). And then you can write:
auto view = new KeyboardView(someFrame);
and have proper type safety.
Thanks Michel, my question was based on a completely wrong
assumption (really sorry, my bad), the code of course works,
which is again really cool about the D/Objective-C bridging.
When I prepare the framework glue headers I usually add both
variations init.. and this(), so the coder who uses it can take
the shortcut if he prefers. I try to stay as close as possible to
the naming conventions of the Cocoa framework, it facilitates
somewhat the documentation lookup in Xcode. Named parameters is
probably the feature I like most about Objective-C, it makes the
code so much more readable and auto-documents, if one is careful.