Putting {
on the same line as the method declaration doesn't change the behavior at all. It behaves exactly the same way when I do that.
And as for "Obviously I don't understand the logic that Apple uses for these indentations". How it changes the alignment depends on where you are in the code.
For a method, Apple thinks it should not be intended, and so the code of a method should always have an indention of one. In my case, the code has an indention of two (because the method itself is already indented), so Xcode reduces that to one every time you autocomplete, so the code jumps to the left.
But then I break the function call into two lines, and when you do that, Apple thinks that the next line should align with the parenthesis of the previous line, so this time the code jumps to the right to align with the parenthesis.
Basically, Apple has a weird idea of how code should be aligned, even though no one outside of the Apple universe would align code that way, and whenever you autocomplete, Xcode aligns the code the way Apple thinks it should be aligned. Also note that Apple has different ideas about alignment in Obj-C, Swift, and other languages, so this also plays a role.
However, that our company has been using the same code alignment for over 20 years and we will not allow Apple or Xcode to force a new alignment on us. If this issue is not resolved, we will stop using Xcode for development and even abandon native coding if we have to.