2016-09-26 11 views
16

Aby użyć Xcode 8 z projektem Swift, musimy go przekonwertować na nową składnię Swift 3.Konwersja na Swift 3 z Xcode 8

Mam projekt z kilkoma cocoapods. Najpierw zainstalowałem wszystkie nowe wersje tych strąków z odpowiednich źródeł, więc są one już konwertowane na Swift 3.

Następnie użyłem Edit -> Convert -> To current Swift syntax choosing Swift 3 dla mojego głównego celu (w zasadzie prawdziwej aplikacji). Wszystko wydawało się być w porządku, ale na pierwszym etapie otrzymałem wiele błędów, nawet prostych, które można naprawić za pomocą CMD+ALT+CTRL+F, ale zwiększają się przy każdej kompilacji. Myślę, że to narzędzie do konwersji nie jest najlepsze, albo coś poszło nie tak.

Czy możesz wskazać mi właściwy kierunek?

ekranu, aby pokazać problemy

screenshot errors

+0

Czy możesz pokazać niektóre błędy? –

+2

Mam problem z tym samym problemem - ta rozmowa działa tylko w przypadku bardzo małych projektów. W tej chwili pozostaję w wersji 7.3.1 - i później odbuduję projekt ze złomu (więc skopiuj klasę dla klasy - spróbuj przekonwertować/sprawdź składnię) - ale zajmie to co najmniej jeden pełny dzień dla pojedynczego projektu . – derdida

+0

I sprawdź to: Nadal wiele "ręcznej" pracy, aby przekonwertować do najnowszej składni. https://stackoverflow.com/questions/37946899/converting-to-swift-3-difficies?rq=1 – derdida

Odpowiedz

6

Wiem, że to smutne, ale nie ma innego rozwiązania niż zmienia swój kod ręcznie. Tak samo jest z ograniczeniami, które również są różne i musisz je wszystkie zmienić (jeśli są błędne): /.

+0

Wpadłem na to samo. Wszystkie moje ograniczenia musiały zostać przerobione. Ogromny ból mówi klientowi, że prosta aktualizacja etykiety, której potrzebowali, zajmie ponad 4 godziny, gdy ponownie przerysuję cały układ aplikacji. – DiggyJohn

+0

Oczywiście, XCode z wdziękiem pokazuje opcję fix obok znaku błędu, możesz skorzystać z tej opcji, aby pozbyć się wspomnianych problemów. – GvSharma

2

Można goto bezpłatnych usług (dla dużych plików, które muszą uaktualnić accont) jasne i proste:

Online Convertor

Można dokonać konwersji konwersja przez mały blok kodu. Czasami linia po linii.

Innym sposobem jest uczynienie z Mostu Obiektu CelC w projekcie Swift3.

Użycie (w połączeniu z konwerterem online) Automatyczne poprawianie z xcode 8. Jest bardzo użyteczne (należy zachować ostrożność przy automatycznym poprawianiu, czasami spowoduje to zanik kodu).

Podsumowując: nie jest źle, wszystkie błędy należy naprawić ręcznie. Najlepszy sposób na naukę szybkiego 3. 90% błędów jest bardzo łatwa do naprawienia, po prostu wykonaj logi ...

+0

Czy ta usługa dokonuje konwersji z wersji 2.0 -> 3.0 lub tylko z objc -> swift 2/3 – eonist

+0

Nie, ale nie ma takiej potrzeby. Jeśli możesz pobrać xcode 8.0 ver lub> 8.0 auto correct wykona to zadanie za Ciebie. –

+1

To jest teoria, IRL nie jest takie proste. Take Range na przykład. Całkowicie przeprojektowany w wersji 3.0. – eonist