Good reasons to use Swift might include the following:
- You think you can make good use of the features Swift offers (generics, sum types, optionals, namespaces, typed containers) and are willing to not just write Objective-C code with a different syntax.
- You are willing to take a short-term productivity hit to learn a language which will probably become the crux of Apple's developer tools in the future.
- Your project isn't going to rely heavily on the dynamic features Objective-C offers (e.g. method swizzling, adding or replacing classes and methods at runtime).
Things that are troublesome with Swift include the following:
- Swift's interoperability with Objective-C and Cocoa Touch is still touch-and-go in a lot of places. It's been getting better, but unless you understand how both Cocoa Touch and Swift work, you will just have to take on faith things like IBOutlets being implicitly unwrapped optionals.
- Xcode's stability when it comes to working with Swift projects leaves much to be desired. The level of instability also seems to vary; I've worked on files that crashed SourceKit over and over and files that caused the IDE no trouble at all.
- I wouldn't call Swift alpha-quality, but there are still compiler and runtime bugs that need to be addressed.
(BTW I really wish HN supported proper lists in comments. Doing the two-space indent just makes everything run off the screen.)