The features are there, but not everyone comes from a VS/Eclipse background where this stuff is always there and always in your face. Apple disables the as-you-type features by default for whatever reason.
You can always right-click a variable or method name and use 'Jump to <blah>' to jump to where it is declared.
In-line autocomplete is turned on in the XCode preferences. If you want a method list, the default is to bring it up using the escape key while typing.
As for getters and setters, Apple's developers seem adverse to adding tools to autogenerate code for the developer. Instead they prefer to allow the developer to write less code. Obj-C 2.0 adds autogeneration of setters/getters to the language (similar to C# 3.0, actually), for example, and Interface Builder builds resource files rather than code (in contrast to .NET Forms). There are still code generators if you are using APIs/tools like CoreData though. It is hard to say that these indispensable features don't exist, they just aren't available in the exact same way Eclipse and Visual Studio implements them.
I don't blame them for wanting to try to find another way to do it, even if theirs isn't perfect. Neither is the Eclipse or Visual Studio way of doing things.
Coming from java/eclipse to c++ xcode I really miss auto-magically creating getters and setters and things like this.
have I missed something or is this just an indispensable feature that xcode doesn't have?
Can't you use Eclipse for C++ on the Mac? There is a script menu in Xcode
next to Help. Perhaps you could add a script in there which did something near to what Eclipse does.
I can't say I agree with you about it being an indispensable feature though. If I find myself doing a lot of donkey work, like writing 30 accessors in the same class, alarm bells start ringing in my head, and I ask myself perhaps I need to revisit the design. So, having time to think while coding can be a good thing. Just my opinion and I can understand people liking features like that.
b e n
but I still don't see how criticism or description of any of the other languages excuses them from leaving the feature out of C++ . What does writing less in objective C have to do with painfully hand writing 30 getters and setters in C++? and to clarify, you see code generation as bad because it's redundant for the programmer therefor it's more elegant to use shorthand?
!Well, on the Mac, Apple's focus is on Obj-C, not C++. So support from Apple will be somewhat minimal for C++.
And while I didn't say code generation was bad (I said Apple thought that way), I would say it is as well. Generated code is code you didn't write, but will have to maintain in the future. That is usually bad.
I find the best way to write maintainable code is to write less code. As you say in a later post, you wind up writing bureaucratic code. This isn't bad, as it is safe code, but it could be bad because it is complex code by design.
Code should be complex by need, not by design. Programmers always need to be wary of over-engineering their code when they first write it. Don't try to make it do everything that you possibly may or may not need of it. Write just the parts you need for it to do its job. Then come back later and tweak for performance, extra functionality, etc as needed. Trying to plan ahead for this sort of stuff from the beginning usually gives you pain.
And yes, I'd agree writing accessors is tedious, I hand-write accessors in C# all the time at work. But I also never write an accessor unless some other class really needs access to a variable. Never before that. Some of our product's most complex classes never reach a dozen. We just never need that many in practice.
Look into using @synthesize for automated getters/setters.Coming from java/eclipse to c++ xcode I really miss auto-magically creating getters and setters and things like this.
have I missed something or is this just an indispensable feature that xcode doesn't have?
Look into using @synthesize for automated getters/setters.
I'm curious. Since I'm entirely self taught, what are those alarm bells? maybe thirty is excessive but, in java, when I code the more controller type of objects, I start with upwards of ten variables. Next, I stripe getters and setters across the board, each with the appropriate modifiers...
then I just run and fill everything in.
When I see other peoples code ( which is really rare ) things seem simpler, but I can't find a way to organize certain things without being unnecessarily bureaucratic.