swift programming language presentation
TRANSCRIPT
![Page 1: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/1.jpg)
Swift
![Page 2: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/2.jpg)
ΓρήγορηΜοντέρναΑσφαλής
Διαδραστική
![Page 3: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/3.jpg)
Tι θα γνωρίσουμε ?
Xcode IDESwift Programming
Language
![Page 4: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/4.jpg)
Τι θα χρειαστούμε ?
• Mac
• Xcode IDE
![Page 5: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/5.jpg)
ΠρόγραμμαΣάββατο 25 Απριλίου 2015
• Xcode IDE
• Swift ( Variables, Constants, Arrays, Dictionaries, Optionals, Strings).
• Auto Layout, Navigation Bars, Segues.
![Page 6: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/6.jpg)
Introduction to SwiftΣταθερές και Μεταβλητές
![Page 7: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/7.jpg)
Βασικοί Τύποι
• Int = 1, 3, 800, 6500
• Float or Double = 1.5, 3,54, 878.678
• Bool = true, false
• String = “Kermit”, “Gonzo”
• Class Name = UIView, UIButton etc
![Page 8: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/8.jpg)
Δήλωση Μεταβλητών
var name : type = value
var name value=
![Page 9: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/9.jpg)
Σταθερές vs Μεταβλητές
![Page 10: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/10.jpg)
Demo
![Page 11: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/11.jpg)
Introduction to SwiftOptionals
![Page 12: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/12.jpg)
Εισαγωγή στα Optionals• Τα Optionals υποδεικνύουν αν υπάρχει ή όχι μια
τιμή
• Την έλλειψη μιας τιμής την αναπαριστούμε με nil
• Ολοι οι τύποι μπορούν να πάρουν την τιμή nil
• Για να ελέγξουμε αν υπάρχει τιμή χρησιμοποιούμε το if-let syntax
![Page 13: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/13.jpg)
Introduction to SwiftStrings
![Page 14: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/14.jpg)
Strings!• Είναι μία συλλογή απο character τιμές
• Το περιεχόμενο που εχούν τα Strings είναι τύπου τιμής
• Τα Strings μπορεί να είναι mutable, immutable
![Page 15: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/15.jpg)
Swift και Unicode• Τα Strings είναι πλήρως συμβατά με
Unicode
• Oλόκληρος ο κώδικας Swift είναι συμβατός με Unicode
![Page 16: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/16.jpg)
Demo
![Page 17: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/17.jpg)
Introduction to SwiftArrays
![Page 18: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/18.jpg)
Swift Arrays
• Τα Arrays περιέχουν πολλαπλές τιμές σε μια συγκεκριμένη σειρά.
• Η ίδια τιμή μπορεί να εμφανιστεί παραπάνω απο μία φορές.
• Τα Arrays πρέπει να καθορίζονται ώστε να έχουν τον ίδιο τύπο
item 1… = [ , , ]
item 2 …
![Page 19: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/19.jpg)
Array Bridging• Swift Arrays απρόσκοπτα κάνουν bridge σε
NSArrays
• Για να γίνει το bridge απο swift, τα αντικείμενα ( objects ), θα πρέπει να είναι συμβατά με AnyObject
• Όταν κάνουμε bridge απο NSArray, δημιουργούμε ένα AnyObject Array
![Page 20: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/20.jpg)
Demo
![Page 21: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/21.jpg)
Τι είναι τα Λεξικά ?• Τα Λεξικά αποτελούνται απο ζευγάρια κλειδιών
και τιμών
• Λεξικό απο αριθμούς δωματίων ξενοδοχέιων σε ονόματα: 201: “Agis Room”
• Λεξικό ονομάτων σε ηλικίες: “Agis”: 19
• Βασικός κανόνας :
• Arrays χρησιμοποιούμε για να φτιάξουμε μια λίστα με σειρά
• Λεξικά χρησιμοποιούμε για να ψάξουμε κατι γρήγορα με την βοήθεια ενος κλειδιού
![Page 22: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/22.jpg)
Δήλωση Λεξικών
... = [ : , : , … ] key 1 key 2value 1 value 2
• Τα κλειδιά και οι τιμές πρέπει να είναι σωστά δηλωμένα.
• Οι τιμές που ψάχνουμε ( Lookup values) είναι Optionals
![Page 23: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/23.jpg)
Dictionary Bridging• Swift Λεξικά απρόσκοπτα κάνουν bridge σε
NSDictionaries.
• Τα κλειδιά και οι τιμές πρέπει να υπάρχουν ως περιπτώσεις μέσα σε μία κλάση.
• Τα NSDictionaries που έχουν γεφυρωθεί σε swift, αυτόματα γίνονται AnyObject.
![Page 24: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/24.jpg)
Introduction to SwiftIf - for - while
![Page 25: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/25.jpg)
if
if Condition
else
Condition else if
{ Statements }
• Οι συνθήκες πρέπει να επιστρέφουν τιμή τύπου boolean
{ Statements }
{ Statements }
![Page 26: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/26.jpg)
ΠρόγραμμαΚυριακή 26 Απριλίου 2015
• Table Views, Persistence Storage.
• Creating our first app, Accessing Web Content.
![Page 27: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/27.jpg)
UITableView (Class)• Μία πολύ σημαντική κλάση που μας παρουσιάζει
πληροφορίες σε κελιά
• Αυτή η κλάση ειναι μια υποκλάση της UIScrollView
• To “Table” μπορεί να είναι στατικό ή δυναμικό
Είδη UITableView• Plain ή Grouped.• Στατικό ή Δυναμικό.• Χωρισμένο σε τμήματα ( Section).• Διαφοροποίηση απο γραμμή σε
γραμμή.
![Page 28: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/28.jpg)
UITableViewUITableView.Plain .Grouped
Δυναμική Λίστα
( Dynamic List) & Plain (ungrouped) Στατικό &
grouped
![Page 29: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/29.jpg)
UITableViewPlain Style Table
Header
var tableHeaderView: UIView
![Page 30: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/30.jpg)
UITableViewPlain Style
Table Footer
var tableFooterView: UIView
![Page 31: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/31.jpg)
UITableViewPlain Style
τμήμα ( section )
![Page 32: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/32.jpg)
UITableView
UITableViewDataSource’s tableView (UITableView, titleForHeaderSection: Int)
Plain Style
Επικεφαλίδατμηματος (header section )
![Page 33: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/33.jpg)
UITableViewPlain Style
UITableViewDataSource’s tableView (UITableView, titleForFooterSection: Int)
Υποσέλιδοτμηματος (footer section )
![Page 34: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/34.jpg)
UITableViewPlain Style
UITableViewDataSource’s tableView (UITableView, cellForRowAtIndexPath: NSIndexPath)
κελί
![Page 35: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/35.jpg)
Με ή χωρίς τμήματα
Χωρίς τμήματα Με τμήματα
![Page 36: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/36.jpg)
Τύποι Κελιών
SubtitleUITableViewCellStyle.Subt
itle
Basic.Default
Right Detail
.Value1
Left Detail
.Value2
![Page 37: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/37.jpg)
UITableView Protocols
• Πως τα συνδέουμε όλα αυτά;
• H σύνδεση μέσω του κώδικα γίνεται μέσω της κλάσης UITableView και πιο ειδικά των στοιχείων dataSource και delegate
Το delegate το χρησιμοποιούμε για να δούμε και να επεξεργαστούμε πως εμφανίζονται οι πίνακες.
Το dataSource μας παρέχει τις πληροφορίες που εμφανίζονται μέσα στα κελιά
![Page 38: Swift Programming Language Presentation](https://reader035.vdocuments.net/reader035/viewer/2022081502/55c1b62bbb61eb956b8b46ed/html5/thumbnails/38.jpg)
UITableView Protocols• Πότε πρέπει να εφαρμόζουμε το dataSource;
• Οταν οι πληροφορίες (data) στον πίνακά μας ειναι δυναμικές
Σε αυτο το πρωτόκολλο υπάρχουν 3 βασικοί μέθοδοι :
• Πόσα τμήματα έχει ο πίνακας;
• Πόσες γραμμές έχει ο πίνακας;
• Πώς μπορώ να επεξεργαστώ δημιουργήσω ένα κελί σε συγκεκριμένη σειρά, σε συγκεκριμένο τμήμα.