Xcode is answering the question of what is available as best as it can.
Part of the problem is down to the 'things are decided at runtime' nature of Objective-C - the compiler is giving you all of the possibilities that are possible, which is usually considerably wider than what you'd expect. This isn't just superclasses (going all the way to NSObject usually), but other things in the same namespace, or possibly in the same namespace. With Objective-C things aren't set in stone at compile time - like with many other languages, a great deal is left until run-time, and the compiler isn't always able to determine what is available - some of the time it is just trusting that you really do know what you are doing. This means you can end up being presented with a wide range of options.
Auto-complete gets better with each new version of Xcode - but there is still plenty of room for improvement! It is tricky however, when you can't remember the exact name of the method you wish to use (or even the first letter) - in these cases I just fall back to the docs.
Basically, you just need to keep typing until it narrows the possibilities down. It can also be tripped up with syntax errors in your code - methods following the error suddenly become invisible to auto-complete.
Looking again at your issue, it does seem that auto-complete is rather broken on your system - that is above and beyond the usual. It could be that Xcode's indexing or something is messed up. Have a look at some old answers here, and here for inspiration, as it may be you're suffering something related. It's unlikely to simply be caused by a setting as it is trying to work, so either something's corrupt, or something in your configuration is confusing matters.