Wprowadzenie do Objective-C

Podobne dokumenty
Programowanie dla ios

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Programowanie dla ios

SWIFT. Zaawansowane Programowanie Obiektowe

Programowanie dla ios

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Programowanie dla ios

SWIFT. Aplikacje Mobilne i Multimedialne

Programowanie dla ios

KOTLIN. Język programowania dla Androida

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

JAVA W SUPER EXPRESOWEJ PIGUŁCE

1 Podstawy c++ w pigułce.

MATERIAŁY DO ZAJĘĆ II

Podstawy Programowania C++

Wykład 2 Składnia języka C# (cz. 1)

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Microsoft IT Academy kurs programowania

Języki skryptowe w programie Plans

Programowanie obiektowe

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Programowanie obiektowe

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

1 Podstawy c++ w pigułce.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Oczywiście plik musi mieć rozszerzenie *.php

4. Funkcje. Przykłady

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Właściwości i metody obiektu Comment Właściwości

Java Język programowania

Tworzenie aplikacji w języku Java

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie obiektowe

Podstawy programowania skrót z wykładów:

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Wykład 8: klasy cz. 4

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

OBC01/TOPMOB Projektowanie w języku Objective-C

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Programowanie Obiektowe i C++

Języki i techniki programowania Ćwiczenia 2

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Wykład 5: Klasy cz. 3

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Polimorfizm. dr Jarosław Skaruz

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Programowanie obiektowe i zdarzeniowe

Podstawy Programowania Podstawowa składnia języka C++

Podstawy programowania. Podstawy C# Tablice

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Projektowanie klas c.d. Projektowanie klas przykład

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

1 Atrybuty i metody klasowe

ForPascal Interpreter języka Pascal

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Kurs WWW. Paweł Rajba.

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

.NET Klasy, obiekty. ciąg dalszy

Wprowadzenie do programowania w VBA

Programowanie obiektowe

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Enkapsulacja, dziedziczenie, polimorfizm

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Część 4 życie programu

PHP: bloki kodu, tablice, obiekty i formularze

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Przychodnia 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę Osoba.

ZMIENNE. Podstawy PHP

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

ROZDZIAŁ 2. Operatory

Programowanie obiektowe - zadania

Programowanie obiektowe

Materiały do zajęć VII

Transkrypt:

Wprowadzenie do Objective-C

Historia rozszerzenie składni C o elementy obiektowe powstał na początku lat 80-tych zainspirowany SmallTalk iem wstecznie kompatybilny z C

Historia Steve Jobs po odejściu z Apple założył firmę Next Next wykupił licencję na Objective-C, który został językiem programowania systemu NextStep Next został wykupiony przez Apple, a NextStep stał się podstawą Mac OS X

Objective-C składnia nieobiektowa zgodna z C składnia obiektowa pochodząca ze SmallTalk Przesyłanie komunikatów, a nie wywoływanie metod Obsługa wyjątków

Objective-C dziedziczenie tylko pojedyncze zamiast interfejsów protokoły kategorie - podobne jak metody rozszerzające w.net zarządzanie pamięcią: zliczanie referencji

Objective-C słowa kluczowe zaczynają się od @ programując dla ios i Mac OS wszystkie klasy dziedziczą po NSObject podobnie jak w C: pliki nagłówkowe *.h pliki implementacyjne *.m sugerowana notacja wielbłądzia (camel) settablecellvalue

Plik nagłówkowy Atrybuty/pola Operacje/metody Kolejność zawsze taka sama

Plik implementacyjny Wszystkie metody z pliku nagłówkowego są publiczne - przed metodą oznacza, że jest to metoda instancji klasy + oznacza metodę klasy (metoda statyczna) metody prywatne można dopisać w pliku.m

Metoda w nawiasach na początku typ metody, np. (void) nazwa metody argumenty oddzielone : i oznaczone etykietami oraz typem, np.: argument z etykietą description typu wskaźnik na NSString

Metoda metoda tableview typu wskaźnik na UITableViewCell 2 argumenty: typu wskaźnik na UITableView o etykiecie cellforrowatindexpath typu wskaźnik na NSIndexPath o etykiecie indexpath

Przesłanie komunikatu czyli wywołanie metody [adresat komunikat] adresatem może być obiekt lub klasa z argumentem i kilkoma

Własności ważną rolę odgrywają własności (properties) ukryte metody setter i getter w przykładzie równowążne metodom code do pobrania danych i setcode do podstawienia składnia kropkowa

Selektory wskaźniki do metod umożliwia dynamiczne wywoływanie metod

Dziedziczenie tylko pojedyncze klasa może implementować wiele protokołów wszystkie metody są wirtualne

Zarządzanie pamięcią nie ma Garbage collection (jest w Mac OS X) można wykorzystać ARC (od ios 5) [[object alloc] init]; //konstruktor

Typy szablonów aplikacji Master-Detail Application Page-Based Application Single View Application Tabbed Application Game

Okno i widok Aplikacja jest tworzona za pomocą delegacji Każda aplikacja ma tylko jedno okno (Window) Elementy na ekranie umieszczone są w widokach (View), może ich być wiele Niektóre widoki mogą się obracać

Hello World 2009 Tworzymy nowy projekt w Xcode Window-Based Application

Kod aplikacji

Deklaracja Kod delegacji

Implementacja Kod delegacji

Efekt

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności z C

Podobieństwa do Objective-C typy podstawowe operatory użycie nawiasów klamrowych {} użycie nawiasów kwadratowych [] (tablice) operator przypisania =, porównania == podobne instrukcje (pętle, warunkowe) dziedziczenie metod klas i instancji słowo kluczowe self

Różnice vs Objective-C nie trzeba używać ; brak plików nagłówkowych silne typowanie przeciążanie operatorów nowy operator === porównujący obiekty pełne wsparcie Unicode w string brak obsługi wyjątków inferencja typów programowanie generyczne typy funkcyjne

Różnice vs Objective-C domyślnie nie ma wskaźników przypisanie nie zwraca wartości brak konieczności używania break w instrukcji switch (instrukcja fallthrough) zmienne i stałe są zawsze inicjalizowane przepełnienie zakresu jest wykrywane, chyba, że użyjemy specjalnych operatorów, np. &+, &-

Playground xcode 6 zawiera moduł Playground służy on do sprawdzania na żywo jak działa kod Swift

Playground Można na różne sposoby wizualizować działanie kodu

Playground Można korzystać z większości API, np. UIKit

Zmienne i stałe Słowa kluczowe let i var let definiuje stałą var definiuje zmienną podstawienie wartości określa typ zmiennej/stałej dzięki inferencji typów

Zmienne i stałe Nazwy zmiennych mogą zawierać dowolne znaki Unicode oprócz: spacji symboli matematycznych linii i prostokątów Nie mogą się zaczynać od cyfry

Typy podstawowe Int8 UInt8 Int (Int32, Int64) UInt (UInt32, UInt64) Double (64 bity - 15 cyfr) Float (32 bity - 6 cyfr) String Bool (true lub false)

Typy podstawowe Dla których ma to sens mają własności max i min Można stosować aliasy nazw typów

Operatory Podstawowe operatory: +,-,*,/,% (modulo) Operatory złożone: +=, -=, *=, /=, %=, &&, Operatory inkrementacyjne: ++, Operatory porównania: ==, >, <, >=, <=,!= Operatory zakresu: x..y, x..<y Operatory bitowe: &,, ^, <<, >>, &=, =, ^=, <<=, >>=

Operatory typów Operator is sprawdza, czy obiekt jest danego typu i ma wartość boolowską Operator as? rzutuje obiekt na typ opcjonalny, a gdy jest to niemożliwe podstawia nil Operator as! wymusza rzutowanie na typ, a jeżeli jest niemożliwe to występuje błąd wykonania Operator as można stosować przy rzutowaniu w górę

Zmienne i stałe wartości nigdy nie są domyślnie konwertowane do innych typów - trzeba stworzyć nową wartość wartości w stringach można osadzać łatwiej typy opcjonalne (nullowe) - dodajemy? wtedy zmienna może mieć wartość nil

Tablice i słowniki Deklaruje się je za pomocą nawiasów kwadratowych Dostęp do elementów też przez nawiasy Słowniki klucz:wartość Aby utworzyć puste korzystamy ze składni konstruktorów

Krotki Wartości można grupować w krotki (tuples) Krotka może zawierać dowolną kombinację typów Krotkę można zdekomponować na składowe

Krotki niepotrzebne wartości można zastąpić podkreśleniem do składowych można się odwołać przez indeks

Krotki składowe mogą mieć swoje etykiety

Instrukcje instrukcje warunkowe if i switch warunek musi być zawsze boolowski pętle for-in, for, while, do-while

Instrukcja warunkowa Jeżeli chcemy sprawdzić, czy zmienna ma wartość w instrukcji warunkowej można wykorzystać operator let

Instrukcja switch Nie jest ograniczona do typów prostych Nie jest ograniczona do równości Musi być wyczerpująca - klauzula default

Instrukcja switch W przeciwieństwie do innych języków Swift automatycznie kończy switch po znalezieniu pasującego przypadku Można użyć break, gdy tego potrzeba Można to zmienić instrukcją fallthrough

Instrukcja for-in Umożliwia iterowanie po tablicach i słownikach

Pętle while, do-while for..<

Pętle przerwanie pętli - break zakończenie bieżącego przebiegu - continue

Funkcje Do deklaracji funkcji służy słowo kluczowe func Argumenty oddzielone przecinkami, poprzedzone etykietami i dwukropkiem Typ funkcji po argumentach oddzielony ->

Funkcje Argumenty funkcji mogą mieć etykiety Trzeba z nich wtedy korzystać w trakcie wywołania Argumenty mogą mieć wartości domyślne

Funkcje Funkcja może mieć wiele wartości, identyfikowanych przez etykiety lub indeks

Funkcje Liczba argumentów funkcji może być zmienna pod warunkiem, że są tego samego typu