I use unobtrusive dabbrev-style completion --- I don't want popup menus with completion possibilities drawn from documentation, because Dash.app does a better job of that and is shared by all applications.
I think Emacs does an at least adequate job at all the core functions of Xcode, but does some things Xcode can't do at all.
(It's been a few years since I've written more than a couple thousands lines in Xcode, though.)
Which is a shame, because Xcode's text editor is awful (or did I mention that already??), and Visual Studio's is crashingly average. I'd much rather use emacs.
(I use company-mode, with the clang backend, and it's OK. For code navigation, currently nothing, but rtags (https://github.com/Andersbakken/rtags) is on my todo list. The README is worth a skim - it has a cute way of grabbing the list of files you're using.)
Have I just never configured ctags correctly?
Emacs allows you to jump to anything instantly, even with source tree like Clang or Linux.