wcześniej w tym roku kierownictwo Apple zaprezentowało język Swift, który ma ostatecznie zastąpić Objective-C jako język programowania z wyboru dla komputerów Mac i urządzeń z systemem iOS. Chociaż Objective-C pozostaje popularny, programiści często narzekają na to, jak trudno jest go używać; funkcje Swifta rzekomo wyeliminują przynajmniej niektóre z tych problemów.
pomimo łatwości użycia, programiści nadal będą musieli poświęcić trochę czasu na naukę działania tego języka. Jest to pierwszy z kilku artykułów, które pokazują, jak programować aplikacje na iOS za pomocą Swift.
Kliknij tutaj, aby znaleźć szybkie prace programistyczne.
wymagania wstępne
potrzebujesz Maca, który może uruchomić OS X Mavericks. W momencie pisania tego tekstu możesz programować w języku Swift tylko wtedy, gdy jesteś zarejestrowanym programistą iOS. Aby tworzyć i uruchamiać aplikacje Swift, powinieneś mieć iOS 8 i wersję 6 Apple IDE Xcode. (Musisz być zarejestrowanym programistą, aby przetestować swoje aplikacje Swift na iPhonie, chociaż nie musisz nim być, aby tworzyć i uruchamiać te same aplikacje na emulatorze iPhone ’ a lub iPada.)
na potrzeby tego tutoriala używam wersji beta XCode 6 (w chwili pisania tego tekstu, teraz do nasion GM). Zanim zaczniemy, pobierz pliki projektu i (jeśli jesteś zarejestrowanym programistą Apple z najnowszą wersją beta Xcode) zainstaluj je. Następnie otwórz pliki projektu i załaduj je do Xcode.
co jest w aplikacji Swift?
aby zbudować aplikację Swift, najpierw utworzysz projekt Xcode i wybierzesz Swift jako język. Po wypełnieniu kilku szczegółów oprogramowanie stworzy projekt, który w moim przypadku nazwałem Pierwszyprzykład. Będzie on zawierał dwa pliki kodu źródłowego, aby rozpocząć, a także dwa informacje.pliki plist, które zawierają informacje o Twojej aplikacji i plik storyboard (którego nie będziemy potrzebować w tym przykładzie).
te zasoby to minimum potrzebne do zbudowania aplikacji zdolnej do działania. Ale jeśli uruchomisz go na początku, po prostu dostaniesz pusty ekran—będziesz musiał dodać więcej kodu, aby zrobić cokolwiek. Wkrótce do tego dojdziemy.
wgraj swoje Cvpracownicy chcą kandydatów takich jak ty. Prześlij swoje CV. Pokaż im, że jesteś niesamowity.
Inne przygotowania
jeśli śledzisz i utworzyłeś nową aplikację, pojawi się główna.plik storyboard na liście pliki projektu. Proszę go usunąć i edytować informacje.plik plist. Usuń klucz zaczynający się od nazwy pliku „Main storyboards”.”
dwa pliki kodu źródłowego to AppDelegate.swift i ViewController.swift. W systemie iOS delegat to klasa, która robi coś w imieniu innej klasy, A AppDelegate to miejsce do obsługi specjalnych stanów aplikacji UIApplication. Posiada kilka funkcji wywoływanych przez iOS. Na przykład, jeśli Twoja aplikacja jest w użyciu, a telefon dzwoni, zostanie wywołana funkcja applicationWillResignActive. W tym miejscu należy wstrzymać zadania, wyłączyć timery itp.
oto lista funkcji, które są stubowane w AppDelegate.swift. Jeśli Twoja aplikacja obsługuje przetwarzanie w tle, zostanie wywołana applicationDidEnterBackground, w przeciwnym razie applicationWillTerminate. Funkcje te są miejscami do dodania kodu w celu zapisania danych, ale użyjemy tylko pierwszej:
func applicationWillResignActive(aplikacja: UIApplication)
func applicationDidEnterBackground(aplikacja: UIApplication)
func applicationWillEnterForeground(aplikacja: UIApplication)
func applicationwillenterforeground(aplikacja: UIApplication)
func applicationdidbecomeactive(application: uiapplication)
func applicationwillterminate (application: uiapplication)
Jeśli pierwsza definicja funkcji ma NSObject: anyobject, zmień ją tak, aby brzmiała NSObject: nsdictionary. Jest to funkcja, do której musimy dodać kod; tam wszystko się zaczyna. Wartość – > Bool oznacza, że zwraca wartość bool, tzn. true lub false. Jeśli coś pójdzie nie tak w kodzie po uruchomieniu aplikacji, zwróci „false” (ale w naszym przypadku zawsze zwróci true).
Dodawanie kodu do AppDelegate.swift
To jest to, co całe AppDelegate.plik swift powinien wyglądać. Usunąłem komentarze, żeby było krótko:
w Swifcie tworzysz instancję klasy takiej jak: window = UIWindow (.. ), aby utworzyć instancję UIWindow. Jest to tylko jeden przekazany parametr i nazywa się frame z wartością UIScreen.mainScreen ().Bounds, który określa rozmiar całego ekranu. Zauważ, że okno jest zdefiniowane w klasie jako UIWindow?. Znak zapytania oznacza, że jest to typ opcjonalny i że wartość może być nieobecna lub obecna; jest to podobne do wartości zerowej w innych językach, ale działa dla wszystkich typów, nie tylko klas.
if let window = sprawdza, czy okno jest obecne i rozpakowuje okno (które jest typu UIWindow?), dzięki czemu można wykorzystać właściwości i metody UIWindow. Spróbuj skomentować linię” if let „i odpowiadającą jej”} ” (używając //), a otrzymasz trzy podobne błędy kompilacji, z których pierwszy mówi, że backgroundColor nie jest członkiem UIWindow? Jest członkiem UIWindow, więc żeby dostać się z UIWindow? Aby UIWindow, trzeba go rozpakować; dodaj”!”na końcu nazwy zmiennej, aby ją rozpakować (window!.backgroundColor = będzie działać). To powiedziawszy, bez rozpakowywania zapewnionego przez” Jeśli pozwolisz”, każde okno.odniesienie w bloku musiałoby być również okno!. „If let” wykonuje wszystkie trzy rozpakowania.
linie w tej instrukcji ustawiają ViewController jako główny kontroler widoku, który jest pierwszym utworzonym kontrolerem. Zaimplementowane Kontrolery widoku kontrolują całą nawigację aplikacji. Apple o kontrolerach widoku jest warte przeczytania, jeśli chcesz zrozumieć całą koncepcję; jednak w tym przypadku omówimy tylko jeden przykład. Ale co dokładnie robi kontroler widoku?
Co To jest kontroler widoku?
obszar ekranu urządzenia z systemem iOS jest zarządzany przez jeden lub więcej kontrolerów widoków, które są używane zarówno do nawigacji między formularzami, jak i do zarządzania widokami w danym formularzu. Widok jest instancją UIView lub podklasą UIView i zarządza prostokątnym obszarem w formularzu. Jeśli formularz jest odpowiednikiem biura z cegły i zaprawy, kontrolerami widoku formularza będą menedżerowie w tym biurze, a widoki to pracownicy, którzy faktycznie wykonują pracę.
każdy formularz w aplikacji jest zarządzany przez jeden i (czasami więcej) kontroler widoku. Jeśli formularz ma część stałą i część przewijaną, można użyć innego kontrolera widoku dla każdej części.
w tej aplikacji jest jeden kontroler widoku dla elementów sterujących i jeden, który zarządza wyskakującym alertem po kliknięciu przycisku.
główny kontroler widoku w mojej aplikacji ma widok zawierający Etykietę (UILabel), pole edycji tekstu (UITextField) i przycisk (UIButton). Po uruchomieniu aplikacji Wpisz tekst w polu Edycja tekstu,a następnie kliknij przycisk. Spowoduje to wyświetlenie komunikatu ostrzegawczego z wpisanym tekstem:
Możesz również wizualnie zaprojektować przepływ użytkownika w aplikacji za pomocą storyboardów, które polegają na mniejszej ilości kodu i pomagają wyeliminować błędy, które można uzyskać dzięki ręcznemu zarządzaniu kontrolerami widoków w kodzie. W tym przykładzie wszystko jest tworzone w kodzie w ViewController.swift.
widoki i kontrolery widoków
każdy kontroler widoku ma właściwość view, która jest zbiorem widoków UIViews. Elementy sterujące umieszczane na ekranie to wszystkie podklasy UIView i są dodawane do tego widoku.
w naszym przykładzie widok jest tworzony w metodzie viewDidLoad() kontrolera widoków nadpisanych. Zakodowałem to, aby wywołać funkcję makeLayout (), w której tworzone są kontrolki UILabel i UIButton. Pole UITextField zostało utworzone na poziomie klasy, ponieważ musi być dostępne w funkcji buttonAction (). Wszystkie trzy kontrolki mają swoje właściwości ustawione w makelayout(); kontrolka nie pojawia się, dopóki nie zostanie dodana do widoku przez wywołanie widoku kontrolera widoku.metoda addSubview ().
Klasa ViewController zaczyna się tak:
zmienna msg przechowuje łańcuch, który jest wpisany. Ponieważ potrzebujemy dostępu do pola tekstowego poza metodą makeLayout () (patrz poniżej), jest ono tworzone na poziomie klasy.
ta metoda składa się z trzech części; pierwsza tworzy kontrolkę UILabel z instrukcją:
let FirstLabel = UILabel()
następne sześć linii ustawia właściwości FirstLabel. Zauważ, że kompilator jest na tyle inteligentny, aby to wiedzieć .redColor() jest skrótem od UIColor.redColor (). Na koniec kontrolka jest dodawana do widoku za pomocą instrukcji addSubview ().
kontrolka UITextField została już utworzona na poziomie klasy, więc tutaj po prostu ustawiamy właściwości i dodajemy je do widoku. Przycisk zostanie utworzony, ustawione właściwości i zostanie dodany do widoku.
UIButton.metoda addTarget () ma parametr action, który określa nazwę funkcji, która ma być wywołana po kliknięciu przycisku, i ma końcowy „:” jak „buttonAction:”. Wywołuje to metodę buttonAction() o pomysłowej nazwie.
func buttonAction(sender:UIButton) {
msg = MyEdit.tekst
showAlert(sender)
}
metoda buttonAction() przypisuje łańcuch tekstowy z pola tekstowego do zmiennej msg, która jest następnie wyświetlana przy pomocy metody ShowAlert (). To używa nowego iOS 8 UIAlertController, który zastępuje stary UIAlertView (teraz przestarzały). Metoda showAlert () tworzy instancję kontrolera UIAlertController, dodaje akcję, więc trzeba coś kliknąć, a następnie wywołuje presentViewController (), która jest jednym ze sposobów przełączania kontrolera widoku na inny.
komentarze do kodu
słowo kluczowe „var” służy do zadeklarowania zmiennej, podczas gdy „let” służy do zadeklarowania stałej lub niezmiennej zmiennej. Chociaż kontrolki są zadeklarowane jako niezmienne, oznacza to, że nie można zmienić instancji kontrolki, ale można zmienić jej właściwości. Alert jest zaimplementowany przez UIAlertController; inny typ kontrolera widoku.
- Python, Swift, JavaScript, Java: najlepsze sposoby ich nauki
- Oto Apple, które nauczy Cię o języku Swift
- pierwsze spojrzenie na język programowania Swift Apple