What are the changes in Swift 3?
Swift version: 5.0
Paul Hudson @twostraws
Swift 3.0 introduced the biggest changes to the language since it was released, and it’s 100% guaranteed to cause your current code to break unless you had written some extraordinarily trivial apps.
I went over the changes in more detail in my article What’s new in Swift 3.0?, but here are the headline changes:
- All function parameters have labels unless you request otherwise.
- Needless or duplicated words in method names have been removed.
- UpperCamelCase has been replaced with lowerCamelCase for enums and properties.
- C functions from Core Graphics and GCD have been replaced with method syntax.
- Everything deprecated in Swift 2.2 has now been removed from the language.
- Closures are now considered to be non-escaping by default; if you need them to escape you need to use the new
- Key paths (for KVO) can now be specified using the
- Many Foundation types have been converted to structs; most have dropped their “NS” name prefix.
- Many closure parameters now have default values, so you don’t need to write
completion: nil much any more.
Available from iOS 7.0
About the Swift Knowledge Base
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.