Pascal was my first "REAL" language (via Delphi 6 on Windows a long time ago).
As far a Swift: The problem is not the Reverse, the problem is the adding to the string. Looks like it's creating a new string each time you try to add to it.
Try changing "+=" to ".append". like this:
s.append(String(UnicodeScalar(UInt8(((x - 1) % 26) + 65))))
and
On my Mac, with the array portion commented out, it took the execution from 0m2.056s down to 0m0.673s.
The next biggest issue is all of the intermediate objects that are created with the crazy casting you have to do to get the integer over to a Character then to a String. That adds up quickly with the loop we have going.
AIR.