Xcode 7.3, Swift toolchain of April 25 (https://swift.org/builds/development/xcode/swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a/swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a-osx.pkg)
There is still a problem with the signature of UIApplicationMain, and it needs to change. When it does, I presume @UIApplicationMain will have to change with it.
We used to write main.swift by calling UIApplicationMain like this:
Process.argc, Process.unsafeArgv, nil, NSStringFromClass(AppDelegate)
But now that won't compile, because there is a type mismatch between Process.argv, which is typed like this:
and the second parameter to UIApplicationMain, which is typed like this:
As you can see, they are subtly different. I am able to work around the problem temporarily by writing this:
Process.argc, $0, nil, NSStringFromClass(AppDelegate)
But whether that is safe or correct, I have no idea.
It is suggested by Quinn "The Eskimo!" that this problem is a consequence of https://github.com/apple/swift-evolution/blob/master/proposals/0055-optional-unsafe-pointers.md.