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.
              • R... Christian Schneider via Digitalmars-d-announce
              • R... Christian Schneider via Digitalmars-d-announce
              • R... Jacob Carlborg via Digitalmars-d-announce
              • R... Christian Schneider via Digitalmars-d-announce
              • R... Jacob Carlborg via Digitalmars-d-announce
              • R... Jacob Carlborg via Digitalmars-d-announce
              • R... Christian Schneider via Digitalmars-d-announce
              • R... Jacob Carlborg via Digitalmars-d-announce
              • R... Christian Schneider via Digitalmars-d-announce
              • R... Michel Fortin via Digitalmars-d-announce
              • R... Christian Schneider via Digitalmars-d-announce
            • Re: D... Michel Fortin via Digitalmars-d-announce
              • R... Jacob Carlborg via Digitalmars-d-announce
  • Re: D/Objective-C 64bit Martin Nowak via Digitalmars-d-announce

Reply via email to