Co nowego w Swift 2.2?

Co nowego w Swift 2.2?

Swift 2.2 jest pierwszym oficjalnym wydaniem tego języka programowania od momentu, kiedy zaczął on funkcjonować jako open source. Z jednej strony na użytkowników czeka kilka ciekawych nowości. Z drugiej natomiast, twórcy postanowili wycofać się z niektórych rozwiązań. Poniżej przedstawiamy najważniejsze zmiany.

Tym razem zdecydowano się na wprowadzenie poprawek, których autorami jest 212 współtwórców, niezwiązanych z Apple. Swift 2.2 ma być przejściowym etapem przed wydaniem wersji 3.0.

Selektory

Do tej pory, jako selector mogliśmy podać nazwę metody w postaci stringu. W Swift 2.2 nie ma już takiej możliwości. Wprowadzona została natomiast nowa konstrukcja #selector, która w czasie kompilacji sprawdza czy podana metoda istnieje.

func noMoreStringSelector() {

}

func selectorTest() {
let button = UIButton()
// Swift 2.2
button.addTarget(nil, action: #selector(noMoreStringSelector), forControlEvents: .AllEvents)

// Before Swift 2.2
button.addTarget(nil, action: "noMoreStringSelector", forControlEvents: .AllEvents)
}

Weryfikacja wersji

Twórcy zdecydowali się również na wprowadzenie nowej, ciekawej konstrukcji, umożliwiającej sprawdzenie wersji Swifta. Rozwiązanie z pewnością docenią autorzy bibliotek, które muszą wspierać kilka jego wersji.

#if swift(>=3.0)
print("Swift 3.0 or later")
#else
print("Swift 2.2 or earlier")
#endif

Wycofanie pętli for w stylu C

Do tej pory mogliśmy korzystać ze standardowej konstrukcji pętli for w stylu C. Wraz z nową wersją Swifta zdecydowano się jednak na wycofanie z tej opcji.

//Standard C-style for loop
for var i = 1; i <= 10; i+=1 {
    print(i)
}
//Modern Swift for loop, which may be used instead of
for i in 1...10 {
    print(i)
}

Wycofanie operatorów ++ oraz —

W pierwszej chwili decyzja ta może nas nieco zaskoczyć. Wycofanie tych operatorów jest pewną konsekwencją likwidacji pętli for w stylu C-, gdzie głównie były one wykorzystywane. Oczywiście jeśli nadal potrzebujemy inkrementacji możemy w zastępstwie użyć konstrukcji +=1.

var i = 0
i++ //Warning, XCode offers to use:
i += 1

Poniższy kod przestanie działać wraz z wersją 3.0:

i++
i--
++i
--i
i = i++

Porównywanie krotek

Swift 2.2 daje nam możliwość porównywania krotek, zawierających do 6 elementów. Jest to prosta, ale przydatna funkcjonalność.

let firstTuple = (1, 2, 3, "string")
let secondTuple = (1, 2, 3, "string")
if firstTuple == secondTuple {
print("Tuples are equal")
}

Więcej słów kluczowych jako etykiety argumentów funkcji

Dotąd mogliśmy wykorzystywać słowa kluczowe jako etykiety argumentów tylko, jeśli zapisaliśmy je w ten sposób (w przykładzie użyto słowo kluczowe repeat):

func printName(name: String, `repeat` repeatCount: Int) {
for _ in 0 ..< repeatCount {
print(name)
}
}

Obecnie już nie jest to konieczne:

func printName(name: String, repeat repeatCount: Int) {
for _ in 0 ..< repeatCount {
print(name)
}
}

printName("Holdapp", repeat: 5)
Dodanie removeFirst()

Pewne problemy mogło nam sprawiać usuwanie pierwszego elementu tablicy. W Swift 2.2, dzięki metodzie removeFirst(), możemy usunąć jeden lub kilka pierwszych elementów.

var elements = [1, 2, 3, 4, 5, 6]
elements.removeFirst()
print(elements) // [2, 3, 4, 5, 6]
elements.removeFirst(3)
print(elements) // [5, 6]

Większość nowości wprowadzonych w Swift 2.2 z pewnością przypadnie do gustu użytkownikom. Nie brakuje oczywiście zmian budzących pewne kontrowersje, jednak trzeba przyznać, że ich wdrożenie jest w pełni uzasadnione. Swift rozwija się niezwykle dynamicznie, dlatego każdy, kto chce być na bieżąco z tym językiem programowania, powinien regularnie śledzić Swift Evolution oraz oficjalny Changelog.

Dowiedz się więcej

Wycena projektu

Opowiedz nam o swoim projekcie i napisz, jak możemy Ci pomóc.

Dlaczego warto rozwijać z nami projekty?

Logo Mobile Trends Awards

Mobile Trends Awards 2021

Wygrana w kategorii
ŻYCIE CODZIENNE

Nagroda Legalnych Bukmacherów

Nagroda Legalnych Bukmacherów 2019

Najlepsza aplikacja mobilna

Mobile Trends Awards logo

Mobile Trends Awards 2023

Wygrana w kategorii
MCOMMERCE ROZWÓJ

23

opinie klientów

Clutch logo