This is the part where some people will start to drift off in confusion, which is a shame because it's important.
Here's are some quotes from the Swift API guidelines:
Got that? It's no surprise that Swift's rules are expressed using lingustic terminology – it is after all a language! – but this at least gives me a chance to feel smug that I did a second degree in English. What it means is that many methods are changing names in subtle and sometimes confusing ways.
Let's start with a couple of simple examples:
myArray.enumerate()
myArray.enumerated()
myArray.reverse()
myArray.reversed()
Each time Swift 3 modifies the method by adding a "d" to the end: this is a value that's being returned.
These rules are mostly innocent enough, but it causes confusion when it comes to array sorting. Swift 2.2 used sort()
to return a sorted array, and sortInPlace()
to sort an array in place. In Swift 3.0, sort()
is renamed to sorted()
(following the examples above), and sortInPlace()
is renamed to sort()
.
TL;DR: This means you need to be careful because in Swift 2.2 sort()
returned a sorted array, but in Swift 3.0 sort()
sorts the array in place.
SPONSORED Still waiting on your CI build? Speed it up ~3x with Blaze - change one line, pay less, keep your existing GitHub workflows. First 25 HWS readers to use code HACKING at checkout get 50% off the first year. Try it now for free!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Download all Swift 3.0 changes as a playground Link to Swift 3.0 changes
Link copied to your pasteboard.