That’s just not true, Swift doesn’t use GC but reference counting.
Strictly speaking you could obviously say reference counting is a form of GC. So to avoid GC you then surely recommend people to use C since that, in contrast to Rust, Swift, C++ and many others, really doesn’t use any GC, neither managed nor reference counting based.
In Rust, reference counting is opt-in for individual objects. It is a necessity for any powerful, low-level language to be able to implement any high-level feature.
You can, after all, also implement reference counting in C.
To avoid GC, you need a language where it’s opt-in. For example C++ or Zig, but not OCaml.