RHED SHI: Καλώς ήρθατε δείτε σεμινάριο CS50 - Εισαγωγή στο iOS. Σας ευχαριστώ όλους που ήρθατε. Ελπίζω να είστε εξίσου ενθουσιασμένοι όπως είμαι για iOS. Πέρυσι, πήρα CS50 ως δευτεροετής φοιτητής, και εγώ βασικά έμαθα για iOS μου τελικό σχέδιο. Και ήταν αρκετά - καλά, δεν ήταν εύκολο, αλλά υπάρχουν πολλά tutorials υποστήριξης σε απευθείας σύνδεση. Και πραγματικά ελπίζω ότι με αυτό σεμινάριο, θα σας δώσω παιδιά ένα κεφάλι αρχίσει στις iOS ανάπτυξη Έτσι, όσον αφορά την ανάπτυξη του iOS, υπάρχουν δύο βασικά πράγματα που Θέλετε να καλύψουμε σήμερα. Πρώτον, η γλώσσα - η γλώσσα πρόκειται να είναι σε Objective-C. Θα ακούσει πραγματικά κάτι πραγματικά συναρπαστικό. Έτσι, μπορείτε να συμμετάσχετε το σύνολο της Apple κοινότητα προγραμματιστών και να οικοδομήσουν μερικές πραγματικά φοβερό εφαρμογές. Επίσης, iOS 7 είναι όμορφο, ελπίζω, για μερικούς από εσάς. Αλλά αυτό είναι αμφιλεγόμενο, το ξέρω. Και κυρίως, αυτό που θέλω να κάνω είναι ο οδηγός σας μέσω Objective-C, καθώς επίσης και Xcode, το οποίο είναι η ολοκληρωμένη περιβάλλον ανάπτυξης που θα είναι εργάζονται σε για iOS. Και έτσι, μόνο μια λέξη για την Objective-C. Βασικά, είναι ακριβώς το ίδιο όπως C, αλλά με πολλά άλλα πράγματα. Και έτσι, πιο αυστηρά, είναι στην πραγματικότητα ένα σούπερ-σετ C. Έτσι, οτιδήποτε που θα μπορεί να κάνει σε C αυτή τη στιγμή, το οποίο είναι βασικά αρέσει το chipset 0 έως 6, μπορείτε μπορεί να κάνει σε Objective-C. Έτσι, δεν αισθάνονται φοβισμένοι για αυτό το νέο γλώσσα που πρόκειται να μάθουν. Έχετε καλύπτονται ήδη πολλά από αυτά, επειδή έχετε όλα γίνονται C αυτό το παρελθόν εξάμηνο, μόνο που τώρα θα πάμε να έχουν πολλά περισσότερα να εργαστεί με. Και είμαι απλώς πρόκειται να σας οδηγήσει μέσα από ένα μερικά παραδείγματα για να τονίσει κάποια από τις βασικές διαφορές που βρήκα ήταν πολύ σημαντικό όταν έμαθα Στόχος-C πέρυσι. Καλά στην πραγματικότητα, έτσι, το άλλο σημείο είναι, Objective-C είναι, προφανώς, object-oriented. Και θα συζητήσουμε λίγο για το τι σημαίνει αυτό αργότερα. Βασικά, είναι όπως το πώς θα συνεργαστεί με structs σε αυτό το παρελθόν από το chipset, με κόμβων και άλλων παρόμοιων τέτοια πράγματα. Εκτός, σε Objective-C, τα πάντα είναι ένα αντικείμενο, και θα πάμε να να περνά γύρω από τους δείκτες σε αντικείμενα αντί των ίδιων των αξιών. Έτσι, είναι απλώς κάτι σημαντικό να έχετε κατά νου. Οπότε, γιατί να μην αρχίσουμε με μερικές διαφορές στη σύνταξη μεταξύ του C και Objective-C; Θέλω να επισημάνω το # include, σας Ξέρετε, πρότυπο io.h σε C και C + +, με η έκδοση Objective-C από αυτό, το οποίο είναι # εισαγωγής, και, στη συνέχεια, ένα είδος αρχείο κεφαλίδας. Στην περίπτωση αυτή, θα ήταν UIKit, Ξέρετε, κάθετος UIKit.h. Θα μπορούσε επίσης να είναι, ξέρετε, MKMapview για να μειώσει δραστικά MKMapview.h αν θέλετε να κάνουν, όπως, ένα χάρτη στο εσωτερικό του app σας. Παρόμοια πράγματα όπως αυτό. Έτσι, το σημαντικό πράγμα είναι να περιλαμβάνει έχει πλέον αλλάξει για την εισαγωγή. Αλλά η ιδέα παραμένει. Θα πάμε να εισάγουν κάποιο είδος του αρχείου header στο πρόγραμμά σας. Θα ήθελα επίσης να επισημάνω τη διαφορά μεταξύ printf και NSLog. Ωστόσο, όπως είπαμε νωρίτερα, Objective-C είναι μια αυστηρή σούπερ-σετ C, πράγμα που σημαίνει ότι υπάρχει printf σε Objective-C, πάρα πολύ. Αλλά, οι περισσότεροι άνθρωποι δεν χρησιμοποιούν αυτό. Οι περισσότεροι άνθρωποι χρησιμοποιούν αυτό το NSLog γιατί σας δίνει μια σφραγίδα χρόνου, και θα δούμε σε δράση αργότερα. Όμως, είναι γενικά μια πιο χρήσιμο τρόπος για να εκτυπώσετε μεταβλητές. Και θέλω επίσης να επισημάνω ότι NSLog παίρνει ακριβώς το ίδιο τιμές κράτησης θέσης, όπως printf κάνει - οπότε% d είναι για έναν int, % F είναι ένα πλωτήρα. Ωστόσο, θέλω να επισημάνω αυτό το πολύ το τελευταίο - NSLog% σύμβολο - ότι είναι ένα σύμβολο κράτησης θέσης για ένα αντικείμενο. Και όπως είπα και προηγουμένως, Objective-C προσφορές λίγο πολύ ως επί το πλείστον σε αντικείμενα, και έτσι αυτό θα έρθει σε χρήση όταν θέλετε να εκτυπώσετε, ίσως, ίσως μια NSArray ή NSDictionary, ή NSString. Έτσι, επίσης, παρατηρούμε ότι, στην NSLog μας δήλωση, έχουμε ένα σύμβολο μπροστά της προσφοράς - ότι είναι για να υποδηλώσει ότι χορδές, τώρα, σε Objective-C είναι αντικείμενα. Δεν είναι πλέον απλά char αστέρια. Είναι αντικείμενα και αντιμετωπίζεται ως τέτοιο. Έτσι, είναι πολύ σημαντικό ότι, όταν χρησιμοποιείτε NSLog παίρνει σε ένα NS σειρά, πράγμα που σημαίνει ότι θα έχετε να συμπεριλάβει στο μπροστά σας εισαγωγικά. Και αυτός είναι ο λόγος που βλέπετε, εδώ, σε όλες τις η λειτουργία μου καλεί σε αυτήν την NSLog, I έχουν στο μπροστά από τα εισαγωγικά, ακόμα και αν και το% d% και το f είναι όλοι το ίδιο από το C. Οποιεσδήποτε ερωτήσεις μέχρι τώρα; Θα προσπαθήσω να περάσει μέσα από αυτό γρήγορα, ώστε ότι μπορούμε να έχουμε περισσότερο χρόνο για να εργαστούν με Xcode και Objective-C, έτσι ότι εσείς μπορεί να πάρει περισσότερες εξοικειωμένοι με αυτό. Στη συνέχεια, θέλω να επισημάνω κάτι εννοιολογικά σημαντικό. Έτσι, στο C, τα περισσότερα πράγματα είναι λειτουργίες. Έχουμε κάνει μια κλήση συνάρτησης. Δηλώνουμε λειτουργίες με αυτόν τον τρόπο, με η επιστροφή πληκτρολογήστε το πρώτο, τότε η όνομα της συνάρτησης, παρενθέσεις, και στη συνέχεια ανεξάρτητα από τα επιχειρήματα και το είδος της αυτά τα επιχειρήματα που θέλουν να περάσουν μέσα Και Objective-C, επειδή τα πάντα είναι ένα αντικείμενο ή μια κατηγορία - έτσι κατηγορία και το αντικείμενο είναι δύο όροι που είναι ως επί το πλείστον συνώνυμη με το άλλο, έτσι μπορώ να τα χρησιμοποιούν εναλλακτικά σε όλο το σεμινάριο. Αλλά, θα δείτε ότι έχουμε μεθόδους Στόχος-C και όχι με συναρτήσεις. Και οι μέθοδοι ανήκουν σε αντικείμενα. Έτσι, όπως ακριβώς, ίσως να λάβει για παράδειγμα, ο κόμβος - τύπος μας [δεν ακούγεται] κόμβο από το chipset 6 ή 5 - έχουμε τη λέξη, την περιουσία, ή την επόμενη δείκτη κόμβου. Οι μέθοδοι είναι απλά λειτουργίες μέσα από κάποιο είδος δομής. Έτσι, στην περίπτωση αυτή, η δομή θα ήταν το αντικείμενο, και, στη συνέχεια, η μέθοδος είναι κάτι που ανήκει σε ένα αντικείμενο. Και αυτό είναι το πώς θα δηλώσετε, είδος, μία μέθοδος. Θα ήθελα να ξεκινήσω με, πάλι, η επιστροφή Τύπος - έτσι, εγώ προσπάθησα να το χρώμα κωδικοποιήσει τις λέξεις κλειδιά εδώ, ώστε εσείς μπορείτε να δείτε το, τουλάχιστον, μορφοποίηση ομοιότητες μεταξύ της λειτουργίας δηλώσεις και οι δηλώσεις της μεθόδου. Έτσι, μπορείτε να ξεκινήσετε με, ξέρεις, η επιστροφή Τύπος - σε αυτή την περίπτωση, είναι μια σειρά, ή ένα δείκτη NSArray - και στη συνέχεια να έχετε αυτή τη μέθοδο. Και τότε, αυτό που είναι ενδιαφέρον είναι εδώ ότι αντί να έχει παρενθέσεις, εμείς έχουν αυτά τα ερωτηματικά. Και τότε, μπροστά από τα επιχειρήματά μας, θέσει, και πάλι, σε παρένθεση ο τύπος επιχειρηματολογία μας. Έτσι, τώρα είμαι προσπαθούν να κάνουν το σύγκριση μεταξύ, ξέρετε, n και τον αριθμό, επειδή είναι τόσο σαν ints. Και στη συνέχεια, η άλλη είναι ένας τύπος NSUInteger. Και τότε, με Objective-C, όταν θέλουν να έχουν πολλαπλά επιχειρήματα ρήτρα μέθοδο σας, εσείς, είδος, διαχωρίσετε τους έξω κάτι σαν αυτό - Δεν είμαι βέβαιος πώς να το περιγράψω, αλλά αυτό είναι ένα καλό παράδειγμα για το πώς θα μπορεί να έχει πολλαπλά επιχειρήματα εκεί. Θα μπορούσε, βέβαια, μόνο εντελώς αγνοήσει την άνω και κάτω τελεία andArray NSArray array αν θέλετε απλά μια μέθοδο που παίρνει σε ένα επιχείρημα. Ναι, το ερώτημα. ΚΟΙΝΟ: Είναι τόσο NSUInteger και NSArray επιχειρήματα που μπορούν να ληφθούν σε εντός της NSArray; RHED SHI: Ναι. Έτσι, επιτρέψτε μου να εξηγήσω. Έτσι, ναι. Έτσι, το ερώτημα ήταν και είναι NSUInteger NSArray * τύποι των επιχειρημάτων, και αυτό είναι σωστό. Έτσι, θέλετε πάντα να διευκρινίσει τι το είδος της επιχειρηματολογίας σας. Και εδώ, προσπαθώ να σας παρουσιάσουμε σε μερικά από τη σύνταξη και vocab της Objective-C, έτσι ώστε αυτές είναι πραγματικές είδη ότι θα πρέπει να ασχολούνται με. Και όπως θα παρατηρήσετε, συστοιχίες δεν είναι πλέον, είδος, απλά πράγματα βραχίονα. Είναι αντικείμενα. Παρά το γεγονός ότι, αν πάμε στο επόμενο διαφάνεια, μπορούμε να δούμε ότι μπορούμε hard-code μια NSArray σε Objective-C με απλά ένα σύμβολο στο μπροστά οι βραχίονες. Δεν είμαι, στην πραγματικότητα, αρκετά σίγουρος για το αν I συντακτικά hard-coded μια σειρά σωστά για την έκδοση C, αλλά αυτό είναι υποτίθεται ότι είναι σε μια σειρά C. Έτσι, αυτό είναι το πώς θα ξέρετε, ίσως να χρησιμοποιήσετε τις λειτουργίες ή το μεθόδους που δημιουργήσατε νωρίτερα. Σωστά; Έτσι, αυτό είναι όπου δηλώνουμε μας λειτουργία και η μέθοδός μας. Και τώρα θέλουμε να τις χρησιμοποιήσουν σε το πρόγραμμά μας, και αυτό είναι πώς θα το κάνουμε. Έτσι, σε C, θα πρέπει, ξέρετε, ίσως, μια bool b, και μπορείτε να το ρυθμίσετε να ισούται με τη λειτουργία, και στη συνέχεια θα περάσει τα επιχειρήματα. Σε Objective-C, είναι αρκετά πολύ το ίδιο πράγμα. Έχετε NSArray * my_array, και είναι θα ισούται με - τώρα, το μόνο διαφορά εδώ είναι αυτό το αντικείμενο πράγμα, που έχω επισημαίνονται με κίτρινο χρώμα, και όπως μπορείτε να δείτε, το C, υπάρχει καμία άλλη κίτρινη λέξη. Και αυτό συμβαίνει γιατί οι μέθοδοι ανήκουν με ένα συγκεκριμένο αντικείμενο. Έτσι, γι 'αυτό πρέπει να έχετε ένα αντικείμενο ότι, το είδος, καλεί αυτή τη μέθοδο σε ο αριθμός μηδέν, και στη συνέχεια η NSArray a, b, c, d. Οποιεσδήποτε ερωτήσεις σχετικά με αυτό; Θα δούμε αυτές τις έννοιες σε δράση πολύ σύντομα, όταν πάμε σε ένα demo. OK. Τώρα, θέλω να μιλήσω λίγο για λίγο περίπου 5 Xcode, το οποίο είναι το ολοκληρωμένο περιβάλλον ανάπτυξης ότι θα πρέπει να εργάζονται με. Ξέρω ότι πολλοί από εσάς, ή κάποιοι από εσάς, δεν έχουν Mac, το οποίο είναι ένα πρόβλημα επειδή Xcode δεν είναι διαθέσιμο για τα Windows και το PC. Μην με ρωτάτε γιατί, αλλά μάλλον - ναι, την εταιρική. Όποια και αν είναι. Αλλά έτσι κι αλλιώς, έτσι, ζητώ συγγνώμη αν κάποια από χρειάζεται να κατεβάσετε κάποιο είδος εικονική μηχανή για Mac σε Για να τρέξει Xcode 5. Αλλά είναι ένα αρκετά ικανό λογισμικού προς χρήση. Και έτσι, πριν βουτήξει σε οποιοδήποτε είδος του demo, θα ήθελα απλώς να σας δείξω ένα εικόνα του τι Xcode μοιάζει με σας παράθυρο, και στη συνέχεια να μιλήσουμε επίσης για τι όλο αυτό το διάστημα είναι. Έτσι, είναι το είδος του σαν να μαθαίνεις πώς να χρησιμοποιήσετε το Microsoft Word, εκτός από εσάς θέλετε να εξοικειώνονται με όλα τα διαφορετικά πράγματα που είναι σε εξέλιξη εδώ. Έτσι, η πρώτη, θέλω να σας επισημάνω στη γραμμή εργαλείων στην κορυφή. Θα δείτε ότι, στην κορυφή, θα έχετε το όνομα του αρχείου - ή, στην πραγματικότητα, το όνομα του έργου σας και στη συνέχεια το όνομα του αρχείου σας. Πάρτε τη σημείωση του παιχνιδιού και τα κουμπιά stop. Αυτοί είναι εκείνοι που θα είναι χρησιμοποιείτε για να εκτελέσετε την εφαρμογή σας σχετικά με την προσομοιωτή - ο προσομοιωτής iOS. Αυτό έρχεται αυτόματα με Xcode 5, έτσι ώστε να μην χρειάζεται να ανησυχείτε για κατεβάζοντας κάποια προσομοιωτή. Απλά πατήστε το play και τότε τρέχει app σας. Και μπορείτε να παίξετε γύρω με σας, και θα δείτε πώς λειτουργεί αργότερα. Και στη συνέχεια, στο κέντρο, φυσικά, είναι όπου όλα τα όμορφα κωδικό σας πρόκειται να πάει. Και στη συνέχεια, στην αριστερή πλευρά, θα είστε έχουν αυτό το είδος του, φάκελο - πλοήγηση - και, στη συνέχεια, θα δείτε επίσης ότι, μαζί με το εικονίδιο του φακέλου, υπάρχουν σωρό άλλα εικονίδια εκεί που θα είναι χρήσιμο αργότερα. Και στη συνέχεια, στη δεξιά πλευρά είναι ένα βοηθητικό πρόγραμμα περιοχή όπου μπορείτε να εργαστείτε με μερικά από τα αντικείμενα και να καθορίσετε, σας Ξέρετε, τι το χρώμα θα πρέπει να είναι, τι η γραμματοσειρά κειμένου θα πρέπει να είναι, και τα λοιπά. Παρά το γεγονός ότι, ό, τι κάνετε στην περιοχή χρησιμότητας, μπορείτε να κάνουμε στον κώδικα, καθώς και. Και έτσι, θα πρέπει να περνούν μέσα από δυο παραδείγματα χρήσης, απλά, χωρίς κώδικα σε όλα - ή πολύ μικρό δείγμα κώδικα - στίχους του συνόλου του κώδικα, ακριβώς έτσι ώστε να παιδιά ξέρετε τι μπορεί και τι δεν μπορεί να κάνει σε Xcode και Objective-C. Και στη συνέχεια, τελικά, κάτω στον πυθμένα, έχετε την περιοχή debug. Έτσι, δεν έχετε πλέον να τρέξει GDB, κ.λπ., για τα προγράμματα σας. Θα το κάνει αυτόματα για εσάς. Και μπορείτε επίσης να εκτυπώσετε πράγματα σε αυτόν τον τομέα. Έτσι, στην πραγματικότητα, στη συνέχεια, θα περάσουμε mario.c, αν εσείς θυμούνται ακόμα ότι, σε Xcode. Έτσι ώστε θα πρέπει να είναι διασκέδαση. Και στη συνέχεια, απλά για να το φέρει πίσω στην Objective-C, θέλω να επισημάνω τι μπορείτε να κάνετε με το εάν καταστάσεις. Έτσι, ξέρετε, επειδή Objective-C είναι μια υπερσύνολο της C, ό, τι κάνετε είναι, κυριολεκτικά, το ίδιο C. Απλά έχουν μικρές διαφορές. Έτσι, θα παρατηρήσετε τη φόρμα για μια περίπτωση δήλωση εξακολουθεί να είναι το ίδιο - θα πρέπει εάν, και τότε θα πρέπει παρενθέσεις με μια κατάσταση στο εσωτερικό του, και στη συνέχεια άγκιστρα για ό, τι θέλετε να κάνετε μέσα από εκεί. Ωστόσο, ήθελα να βάλω αυτήν τη διαφάνεια εδώ, απλώς για να δείξει ότι, επειδή έχουμε να κάνουμε με αντικείμενα τώρα, θα πρέπει να χρησιμοποιήσετε αυτά τα πράγματα όπως ονομάζεται, είναι ίσο με το κορδόνι, το οποίο είναι, συμπτωματικά, μία μέθοδος ενός string ή ένα αντικείμενο NSString. Έτσι, λέξη, στην προκειμένη περίπτωση, είναι ένα NSString αντιρρήσεις, και έχει μια μέθοδο που ονομάζεται είναι ίση με το string, και στη συνέχεια θα περνάτε σε ένα σκληρό κωδικοποιημένο string για να δείτε είτε αυτά είναι ίσες το ένα στο άλλο. Οποιεσδήποτε ερωτήσεις μέχρι τώρα; OK. Και, θέλω να πάω πάνω ένα για τη δήλωση επίσης. Έτσι, για παράδειγμα, αν θέλαμε να βρόχο όλο το μήκος μιας συμβολοσειράς σε C, η παρούσα θα πρέπει να είναι γνωστά σε σας. Και, σε Objective-C, θέλω να επιμείνω σ 'αυτό, το είδος, μέθοδο που ονομάζεται μέτρηση. Λοιπόν, στην πραγματικότητα, επιτρέψτε μου να μόλις το πάρεις πίσω. Μετράνε είναι μια μέθοδος της συστοιχίας. Ωστόσο, είναι πιο συγκεκριμένα ιδιοκτησίας του πίνακα, η οποία είναι ο λόγος που μπορούν να χρησιμοποιήσουν το συμβολισμό με την τελεία. Αλλά δεν θέλω να μπει σε πάρα πολύ αυτή η εννοιολογική πράγματα, θέλω μόνο να σας δείξει πώς τα πράγματα θα δούμε όπως και σε Objective-C έναντι C. Και επίσης, θέλω να επισημάνω ότι ακόμα κι αν έχω χρησιμοποιήσει NSUInteger μπροστά σε όλους του i μου σε Objective-C, μπορείτε επίσης να χρησιμοποιήσετε int, int, επειδή είναι συνολικά έγκυρα σε Objective-C, επίσης. Ναι; ΚΟΙΝΟ: Είναι ακριβώς υφολογική, ή - RHED SHI: Ναι. Έτσι, όπως θα δείτε - έτσι, το ερώτημα ήταν το εξής απλά ένα θέμα ύφους. Όπως θα δείτε, έχω ένα, είδος, αστέρι αστερίσκο πράγμα κάτω στο κάτω μέρος, και ότι η σύνδεση σας παίρνει σε υπερχείλιση στοίβας σχηματίζουν, όταν κάποιος εξηγεί η διαφορά μεταξύ ενός int σε NSInteger και NSUInteger. Και ναι, μπορείτε να διαβάσετε για αυτό αργότερα. Αυτές οι διαφάνειες θα είναι, φυσικά, στη διάθεσή σας. Ας δούμε. Εντάξει, φοβερό. Έτσι, αυτό περιλαμβάνεται επίσης στην διαφάνεια γιατί νόμιζα ότι αυτό ήταν μια μεγάλη ιστοσελίδα που σας παρουσιάζει σε σύνταξη Objective-C. Έτσι, στην πραγματικότητα, γιατί δεν προχωράμε σε Chrome και ελέγξτε έξω αυτό το δικτυακό τόπο; Δεξιά. Έτσι, αυτό που θέλω να σας δείξω παιδιά εδώ είναι αυτή η εικόνα. Έτσι, αυτό είναι, το είδος του, θα είναι ό, τι θα πάμε να δούμε μέσα από κάθε Αρχείο Xcode. Στην πραγματικότητα, γιατί δεν παίρνουμε μόνο ένα στιγμή για να, είδος, πάρτε αυτό μέσα Έτσι, αυτό το βιβλίο - Αυτό είναι το αντικείμενο που έχουμε να κάνουμε με. Και τότε, είναι προφανές ότι πρόκειται να είναι κληρονόμησε από κάποιο άλλο αντικείμενο, αλλά δεν έχετε να ανησυχείτε για αυτό. Και στη συνέχεια, αυτό, ίσως, έχει ορισμένες μεταβλητές μέλος. Το σημαντικό πράγμα που θέλω να σας δείξω είναι οι μέθοδοι παράδειγμα, εδώ. Έτσι, οι μέθοδοι παράδειγμα συμβολίζεται από αυτό το αρνητικό πρόσημο. Και τότε, όπως θα παρατηρήσετε, είμαστε ήδη αρχίσει να δείτε το παράδειγμα για την κήρυξη της μεθόδου, έτσι δεν είναι; Ο τύπος επιστροφής, το όνομα της μεθόδου, και τότε ο τύπος του επιχειρήματος, και τότε το όνομα του επιχειρήματος. Και αυτό το αρνητικό πρόσημο σημαίνει ότι πρόκειται για ένα Μέθοδος παράδειγμα, πράγμα που σημαίνει ότι Αυτές οι μέθοδοι είναι διαθέσιμες μόνο σε αντικείμενα που έχουν τεκμηριώθηκε. Για την αντίθεση, οι μέθοδοι που με συν υπογράψει μπροστά τους είναι κλάσης μεθόδους, πράγμα που σημαίνει ότι μπορείτε να καλέσετε αυτές οι μέθοδοι, ακόμα και αν δεν έχετε ένα αντικείμενο που δημιουργήθηκε ακόμα. Έτσι, για ένα σαφές παράδειγμα, NSString είναι μια κατηγορία. Και μπορείτε να καλέσετε, για παράδειγμα, τάξη μεθόδους για NSString - το πραγματικό, όπως, λέξη NSString. Ωστόσο, προκειμένου να χρησιμοποιήσετε αυτά μεθόδους, που πραγματικά Πρέπει να δημιουργήσουμε ένα string. Για παράδειγμα, NSString εγχόρδων αστέρι ισούται σε εισαγωγικά, hello world. Και στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτές τις μεθόδους - μεθόδους παράδειγμα - σε αυτό το hello world κορδόνι. Έτσι, αυτή είναι η διαφορά μεταξύ μεθόδους παράδειγμα και τις μεθόδους της κατηγορίας. Και, καλύψαμε μόνο αυτό το μέρος. Ακίνητα είναι ένα άλλο πράγμα που είναι εσωτερικό των αντικειμένων, βασικά. Και να τους δηλώσουμε με η λέξη-κλειδί στο ακίνητο. Έχετε αυτές τις επιλογές, εδώ, πως θα εξηγήσω αργότερα, όταν πάμε σε ένα demo. Ναι; Γεια σας. ΚΟΙΝΟ: Μπορείτε να μεγεθύνετε, παρακαλώ; RHED SHI: Ω, ναι. Λυπάμαι. ΚΟΙΝΟ: Σας ευχαριστώ. RHED SHI: Αυτό θα πρέπει να είναι πολύ καλύτερα. ΚΟΙΝΟ: Ναι. Σας ευχαριστώ. RHED SHI: Ναι, παρακαλώ να μου υπενθυμίσω, αν Ξεχάσω για μεγέθυνση ή σμίκρυνση. Έτσι, αυτό είναι το μόνο που ήθελα για να σας δείξω - ώπα, αυτό είναι ένα πολύ - για αυτή την ιστοσελίδα. Έτσι, ας πάμε πίσω στις διαφάνειες μας. Στην πραγματικότητα, τώρα ας ρίξουμε μια στιγμή να βουτήξει σε ένα demo. Έτσι, θα ξεκινήσει με ένα νέο έργο Xcode. Έτσι, αν θα ανοίξει Xcode για όλους μηχανήματα σας, θα πρέπει να σας πάρει κάποιο Η σελίδα όπου λέει, όπως, είτε ανοιχτά μέχρι ένα υπάρχον έργο ή μια νέα του έργου, και θα πρέπει να κάντε κλικ σε ένα νέο έργο. Και στη συνέχεια, θα πρέπει να λαμβάνει σας σε αυτή την οθόνη. Ναι; ΚΟΙΝΟ: Αν δεν έχουμε ένα Mac, εμείς ακριβώς το είδος των χαλαρώσω; RHED SHI: Ή ανατρέξτε στον με κάποιον, ναι. Ναι. Μπορείτε να χαλαρώσω, πάρα πολύ. OK. Λοιπόν, τι θα πάμε να κάνουμε το πρώτο, τώρα, είναι, στην πραγματικότητα, θα πάμε να κάνουμε μια ενιαίας αίτησης άποψη. Έτσι, αν θα παρατηρήσετε, τι είναι μεγάλη για Xcode και υποστήριξης της Apple για προγραμματιστές είναι ότι έχετε πολλά πρότυπα για να συνεργαστεί με ήδη. Θα μπορούσε, για παράδειγμα, κάνει μια εφαρμογή master-λεπτομέρεια. Μπορείτε να κάνετε ένα παιχνίδι - και στην πραγματικότητα, εγώ δεν θα μπω σε παιχνίδια, επειδή τα παιχνίδια είναι μια διαφορετική ιστορία για iOS ανάπτυξη. Και είναι το είδος των διαχωρισμό, έτσι δεν θα μπω σε αυτό. Στη συνέχεια, έχετε την σελίδα με βάση εφαρμογές. Μπορείτε να έχετε μια εφαρμογή καρτέλα - έτσι ήθελα, για παράδειγμα, η Bank of America πιθανώς έχει, όπως, καρτέλες app. Είναι εκείνα για τα οποία έχετε τα κουμπιά στο κάτω μέρος. Και στη συνέχεια, έχετε ένα παιχνίδι Kit Sprite. Ή μπορείτε να εργαστείτε από το μηδέν, η οποία είναι τι θα κάνουμε αργότερα. Αλλά ας, πρώτο, ξεκινήστε με μια ενιαία αίτηση άποψη. Στη συνέχεια, θα ρωτήσω για ένα όνομα προϊόντος, και μπορούμε να κάνουμε μόνο δοκιμή. Το όνομα του οργανισμού - έτσι, το όνομα του οργανισμού, Η εταιρεία αναγνωριστικό - αυτά είναι σημαντικά αν πρόκειται να θέσει app σας για το App Store. Εκτός από αυτόν, κωδικό σας πρόκειται να τρέχει απολύτως πρόστιμο χωρίς αυτό. Αυτό πρόκειται να είναι σημαντικό, αν θέλετε - έτσι, per se, όπως, βάλτε app σας στο τηλέφωνό σας ή κάτι, και δοκιμή έξω, ξέρετε, στην πραγματική ζωή - αυτό θα είναι σημαντικό. Αυτό τείνει να συνήθως να συνδέονται με κάποιο είδος του λογαριασμού προγραμματιστή με την Apple. Και ναι, το ξέρω, μάλλον, πολλά από εσάς δεν θα έχουν κανένα λογαριασμούς του έργου. Ξέρω ότι το πανεπιστήμιο έχει μία. Νομίζω ότι έχει ένα CS. Αλλά, μπορείτε να μου στείλετε email και θα προσπαθήσω να καταλάβω για σας. Αλλά αυτή τη στιγμή, έχω μόλις τεθεί σε μερικά πράγματα κράτησης θέσης εδώ. Και μπορείτε, φυσικά, εδώ, επιλέξτε αν θέλετε να είναι αποκλειστικά και μόνο σε iPhone, iPad σε, ή και τα δύο - καθολικής εφαρμογής. Έτσι, για τώρα, ας κάνουμε την καθολική, απλά να δει και τις δύο πλευρές της πλατφόρμας. Ας δούμε. Έτσι, αυτή τη στιγμή, είμαι πρόκειται να αποθηκεύσετε με κάποιο είδος του φακέλου. Δεν έχει σημασία πού - θα Μπορείτε πάντα να μετακινηθούν αργότερα. Και, τώρα, είμαστε έφερε στο έργο Xcode μας. Δεν θα ανησυχείτε για όλα αυτά. Θα πρότεινα να μην αγγίζουν κανένα από αυτό, αν δεν ξέρετε ακριβώς τι κάνεις. Έτσι, όλα αυτά, απλώς αγνοήστε για το μεγαλύτερο μέρος. Δεν θα χρειαστεί να το αγγίξει, και αν μήπως χαλάσουν κάποια πράγματα εδώ, παίρνει λίγο δύσκολο. Οπότε, γιατί να μην μπορούμε να δούμε σε τα αρχεία σχετικά με την αριστερή πλευρά σε πλοηγό μας. Εδώ, έχουμε AppDelegate.h. Έχουμε AppDelegate.m Έτσι, όπως θα ειδοποίηση, έχουμε header αρχεία, τα οποία καταλήγουν σε dot h, και έχουμε εφαρμογή - στην πραγματικότητα, επιτρέψτε μου να μεγεθύνετε μέσα OK. Επιτρέψτε μου να μεγεθύνετε μέσα Σωστά, έτσι ώστε να έχουν header αρχεία και έχετε τα αρχεία της εφαρμογής. Στην πραγματικότητα - OK. Αυτό είναι λίγο περίεργο, αλλά να φέρει μαζί μου. Στη συνέχεια, γιατί έχουμε επιλέξει μια ενιαία άποψη εφαρμογή, θα πάμε να σε συνεργασία με storyboard. Έτσι, storyboard είναι κάτι που η Apple έχει καταλήξει να βοηθήσει πραγματικά προγραμματιστές πρωτότυπο γρήγορα εφαρμογές τους. Έτσι, αυτό είναι όπου μπορείτε να δημιουργήσετε μια εφαρμογή χωρίς να γράψετε ένα ενιαία γραμμή κώδικα. Ωστόσο, στην ενιαία αίτησή μας άποψη, κάνουμε, φυσικά, έχουν μια αρχείο για την άποψή μας, η οποία είναι ένας ελεγκτής άποψη. Έτσι, έχουμε την κεφαλίδα και το αρχείο της εφαρμογής, εδώ. Και, Πάω για σμίκρυνση τώρα επειδή θα πρέπει να εργαστούν στο storyboard. Έτσι, εδώ είναι η άποψή μας. Αν εμείς, απλά, εκτελέστε το app τώρα, δεν υπάρχει πολύ συναρπαστικό συμβαίνει. Έτσι, θα δείτε αυτή την λευκή οθόνη. Εντάξει; Και, στην περιοχή κοινής ωφελείας μας, μπορούμε να προσθέσουμε ένα σωρό διαφορετικά πράγματα σε αυτό. Έτσι, όταν έχεις να κάνεις με οθόνες στο iOS, οι ελεγκτές άποψη είναι η αντικείμενα που ενσωματώνουν, είδος, τις απόψεις σας. Έτσι, ένας ελεγκτής άποψη πάντα έχει μια ιδιότητα που ονομάζεται προβολή. Και αυτή η άποψη, κατά κανόνα, περιλαμβάνει, Ξέρετε, τι θέλουν να δουν σε μια οθόνη. Έτσι, λοιπόν, ας αρχίσει με την τοποθέτηση, Ίσως, ίσως μια ετικέτα. Έτσι, ας βάλουμε μια ετικέτα εκεί - κολλήσει στη μέση. Έτσι, τώρα που έχω κάνει κλικ στην ετικέτα, I μπορεί να πάει στο ιδιότητες επιθεωρητή και να αρχίσει να αλλάζει την αξία του. Ας το ονομάσουμε CS50 Χρωμάτων. Και, μπορώ επίσης να αλλάξετε τη γραμματοσειρά. Έτσι, αντί του συστήματος, που κάνουν τη δουλειά είναι η προεπιλογή, μπορούμε να κάνουμε μια προσαρμοσμένη μία. Μπορούμε να αλλάξουμε - Ξέρετε, υπερελαφρά, το 32 κάνει. Και τότε, μπορούμε να κάνουμε το δικό μας κουτί μεγαλύτερο. ΚΟΙΝΟ: Νομίζετε ότι μπορείτε να κάνετε ζουμ σε λίγο περισσότερο, ίσως; RHED SHI: Ναι; OK. ΚΟΙΝΟ: Απλά αγγίξτε; RHED SHI: Ας δούμε. Μήπως αυτό το έργο; ΚΟΙΝΟ: Μόλις περάσει το Xcode; RHED SHI: Σίγουρα. OK. Awesome. ΚΟΙΝΟ: Η ετικέτα κάτω; Η ετικέτα; RHED SHI: Τι είναι αυτό; ΚΟΙΝΟ: Τι drop-down ήταν η ετικέτα κάτω; RHED SHI: Έτσι, το ερώτημα ήταν, τι drop-down ήταν η ετικέτα κάτω; Θα πρέπει, απλά, να είναι κάτω από εδώ. Υποθέτω ότι είναι ένα πράγμα κύβο. Αλλά συνήθως, αυτό είναι η προεπιλογή - Είμαι ακριβώς πρόκειται εδώ κάτω μέχρι να βρω μια ετικέτα. Ναι. Έτσι τώρα, έχουμε ετικέτα μας. Ας το κέντρο. Και Xcode μας δίνει τις κατευθυντήριες γραμμές για το κεντράρισμα αντικείμενα. Έτσι, τώρα ας εκτελέσει κώδικα μας και πάλι. Εκεί πάμε. Έτσι, έχουμε CS50 Χρωμάτων. Και τώρα, ας βάλουμε ένα κουμπί εκεί, σωστά; Επειδή θέλουμε να κάνουμε αυτό το διαδραστικό. Έτσι, ας βάλουμε ένα κουμπί εδώ. Και θα καλέσουμε αυτό το κουμπί "βρύσης εδώ να συνεχίσει ". Θα το κέντρο, επίσης, Στην πραγματικότητα, είναι ήδη στο κέντρο. Ναι. Έτσι, τώρα έχουμε ένα κουμπί. Και αν τρέξουμε αυτό και πάλι, θα πάμε να έχουν ένα ωραίο μικρό κουμπί εδώ. Και μπορώ να το κλικ, αλλά δεν κάνει τίποτα, γιατί δεν έχουμε κάνει τίποτα με το κουμπί ακόμα. Έτσι, ας δημιουργήσουμε μια άλλη άποψη, έτσι δεν είναι; Έτσι, ας πούμε θέλω να αξιοποιήσει το κουμπί αυτό και θέλω να μεταβείτε σε άλλη σελίδα - μια άλλη άποψη. Τι Πάω να κάνουμε είναι, μπορώ να δημιουργήσω ένας ελεγκτής άποψη, σωστά; Τώρα θα κάνω κλικ στο κουμπί μου και, στη συνέχεια, το σημαντικό πράγμα είναι, Πάω να κάντε κλικ στην επιλογή - ή - ναι, έλεγχος πατήστε στο πληκτρολόγιό μου. Ελέγχου. Κάντε κλικ στο κουμπί, και στη συνέχεια σύρετε. Έτσι, θυμηθείτε να κρατήσετε πατημένο το πλήκτρο ελέγχου. Ας το κάνουμε και πάλι. Έτσι, κρατήστε τον έλεγχο, κάντε κλικ και σύρετε σε ό, τι θέλετε να κάνετε. OK. Και τώρα, έχω πολλές επιλογές εδώ. Μπορώ είτε να ωθήσει, ή μπορώ να κάνω μια modal, ή μπορώ να κάνω μια προσαρμοσμένη. Push είναι μόνο αν έχετε ένα χειριστήριο πλοήγησης. Αυτή τη στιγμή, το πρώτο άποψή μας ελεγκτής δεν είναι μέσα από κάθε χειριστήριο πλοήγησης. Έτσι, το χειριστήριο πλοήγησης είναι μία που σας δίνει το κουμπί πίσω το app iOS όπου έχετε, ξέρετε, ότι η κορυφή, το είδος, πάχους bar - όπου μπορείτε να πάτε πίσω, ή προς τα εμπρός, και τα λοιπά. Αυτή τη στιγμή, δεν έχω αυτό. Και έτσι, γι 'αυτό δεν μπορώ να κάνω μια ώθηση. Έτσι, χτύπησα στην ώθηση λάθος, εδώ. Και στην πραγματικότητα, ας τρέξει τον κώδικα, και θα πρέπει να συντριβή σε μένα. Μόνο αν πατάω το κουμπί όμως, έτσι - σωστά. Έτσι, αυτό είναι κακό. Και, όπως μπορείτε να δείτε, εδώ, έχουν το μήνυμα λάθους. Έτσι, "μπορεί να χρησιμοποιηθεί μόνο όταν segues Push ελεγκτής της πηγής διοικείται από ένα παράδειγμα του UI χειριστήριο πλοήγησης ». Έτσι, επειδή αυτό δεν ήταν εσωτερικό ενός χειριστήριο πλοήγησης, Δεν θα μπορούσα να το κάνω αυτό. Έτσι, αυτή τη στιγμή, θα πάω πίσω στην φάκελο, πηγαίνει πίσω στο storyboard. ΚΟΙΝΟ: Ποια είναι η πλοήγηση ελεγκτή, και πάλι; RHED SHI: Λοιπόν, τώρα θα σας δείξω. Ας δούμε. Έτσι, Πάω να κάνετε κλικ σε αυτήν την άποψη ελεγκτή, και στη συνέχεια, Πάω να πάει μέχρι προϊόντος - στην πραγματικότητα, όχι, συγγνώμη - επιμελητή. Και Πάω να μπω σε - στην πραγματικότητα, έκανα κλικ σε αυτό; Όχι. Εκεί πάμε. Πάω να πάει επάνω σε editor, κατεβαίνουν να ενσωματώσετε και, στη συνέχεια πλοήγησης ελεγκτή. OK. Και, χώρο εργασίας μου φαίνεται πολύ βρώμικο, οπότε ας το καθαρίσω αυτό. Έτσι, όλα αυτά είναι storyboard. Και με αυτό τον τρόπο - Εντάξει, να σταματήσει - Μπορώ να φτιάξω κάτι γρήγορα όπως αυτό. Και τότε, τώρα μπορώ να πάω πίσω, το ξέρεις; Αλλά αυτό είναι το είδος της βαρετό, σωστά; Έτσι, αυτό που θέλω να κάνω είναι, δεν θέλω να κάνει, απλά, μια άποψη ελεγκτή. Ας πούμε ότι ήθελα να κάνω πραγματικότητα ένα προβολή πίνακα ελέγχου, ώστε να μπορώ να θέσει σε μερικά ωραία χρώματα, στον πίνακα. Έτσι, τώρα που έχω βάλει κατά την άποψή μου πίνακα ελεγκτή, θα πρέπει να τον συνδέσετε ξανά από αυτό το κουμπί για την προβολή ελεγκτή. Γι 'αυτό πρέπει να κάνουμε τον έλεγχό μου, κλικ, drag πράγμα ξανά. Και τώρα μπορώ να κάνω ώθηση, γιατί ενσωματώσετε το εσωτερικό του ένα χειριστήριο πλοήγησης. ΚΟΙΝΟ: Navigation controller μόνο σας επιτρέπει να πάτε από το ένα μέρος στο άλλο; RHED SHI: Ναι. Έτσι, πιο τεχνικά, είναι ένα αντικείμενο όπου - έτσι, στο εσωτερικό της πλοήγησης αντικείμενο ελέγχου, το παρακολουθεί μια σειρά. Και ότι η συστοιχία διαθέτει όλα τα επόμενα δείτε ελεγκτές. Γι 'αυτό, όταν πατήσετε πίσω, πηγαίνει πίσω στην προηγούμενη σελίδα. Επειδή το χειριστήριο πλοήγησης αντικείμενο, ή ο κώδικας που φροντίζει Αυτό το αντικείμενο, έχει μια σειρά που κρατά παρακολουθείτε από αυτούς τους ελεγκτές άποψη, και μπορεί τότε, ξέρετε, DQ την άποψη ελεγκτή και να σας δώσει πίσω το προηγούμενο. Έτσι, αυτό είναι τεχνικά πράγματα, αλλά - και εγώ θα σας δείξω αργότερα σε κώδικα, αν έχουμε χρόνο. Είμαι το είδος του εξαντλείται στην ώρα τους, αλλά - Έτσι, με την προβολή πίνακα, τι μπορούμε να κάνουμε είναι - Είναι συνήθως ορίζεται αυτόματα στη Δυναμική Prototype - θα πάμε να το Static κύτταρα κάνουν, αλλιώς θα πάμε να τρέξει σε κάποια προβλήματα. Και τότε, ας πούμε Πάω να έχουν ένα τμήμα. Έτσι, τα τμήματα είναι σαν - αν έχετε δει ποτέ τη μουσική app, όταν έχετε καλλιτέχνες, τμήματα θα είναι το Α μέσω Z's - τα γράμματα - και, στη συνέχεια, ξέρετε, το άτομο γραμμές θα είναι τα ονόματα των καλλιτεχνών. Και έτσι, αυτό που είναι δροσερό εδώ, είναι ότι μπορώ πρόσβαση σε όλα τα αντικείμενα στο εσωτερικό ιστοριών μου μέσα από αυτό drop-down μενού, πάρα πολύ. Έτσι, Πάω να κάνετε κλικ στο τμήμα μου, και θέλω, ξέρεις, ίσως πέντε σειρές. Και στη συνέχεια, μέσα σε κάθε σειρά, Θέλω να βάλω μια ετικέτα. Και Πάω να καλέσετε αυτό το μπλε. Και τότε, θέλω να θέσω μια άποψη UI, σας ξέρω, ίσως για, όπως, ένα μικρό κουτί. Έτσι ώστε να μπορώ να δείξουμε στους ανθρώπους μια προεπισκόπηση του χρώματος. Και εγώ θα πάω πίσω στην ιδιοκτησία και αλλάξετε αυτό το χρώμα σε, OH, δεν ξέρω Ξέρετε, αυτό το ένα. Και στη συνέχεια, παρατηρήστε επίσης, εδώ, όταν έχω τα εξαρτήματα, μπορώ να έχω παρτίδες των διαφόρων αξεσουάρ ότι βλέπετε συνήθως. Ο δείκτης δημοσιοποίηση, η λεπτομέρεια, ή ελέγξτε το σήμα, ή απλά λεπτομέρεια. Έτσι, ίσως μπορούμε να κάνουμε, όπως, γνωστοποίηση δείκτη, για παράδειγμα. Και τότε, γιατί δεν παίρνουμε αυτά, αντίγραφο επικολλήσετε τους, και τα βάζουμε σε το επόμενη γραμμή του πίνακα. Έτσι, μπορούμε να ονομάσουμε αυτό το κίτρινο. Και θα μπορούσα να έχω για να το επεκτείνουμε αυτό. Ας το κάνουμε κίτρινο. Και με αυτό τον τρόπο, μπορούμε να αντιγράψουμε επικολλήσετε το δρόμο μας προς τα κάτω. Τι ήταν αυτό; Μωβ. Έτσι, όλα αυτά είναι το τυπικό CS50 τα χρώματα που έχετε δει στην τάξη - στην πραγματικότητα, συγγνώμη - ή στην ιστοσελίδα. Ας ελπίσουμε ότι εσείς μπορείτε να δείτε τι κάνω εδώ. OK. Τελευταία ένα. ΚΟΙΝΟ: Πώς μπορείτε να προσθέσετε η σειρά αρχικά; RHED SHI: Έτσι, το ερώτημα ήταν, πώς δεν μπορώ να προσθέσω τη γραμμή αρχικά; Πήγα σε αυτό το τμήμα του πίνακα - ή όπως μπορώ επιλέξτε την ενότητα τραπέζι - και, στη συνέχεια, εδώ, θα ενημερωθεί ο αριθμός των γραμμών. Και, επιτρέψτε μου να ελπίζω ότι αυτό λειτουργεί. OK. Ας δούμε αν αυτό λειτουργεί. Ω, τέλεια, φοβερό. OK. Ενώ ήμουν δημιουργία demo μου, μερικές τα πράγματα δεν ήταν ευθυγραμμισμένα, έτσι, ευχαριστώ για το χειροκρότημα. Ναι. Έτσι, ας δούμε. Θα κάνουν αυτό εννέα μόνο για να κάνουν τα πάντα - ή μάλλον, ας μετατρέψει όλα αυτά σε γνωστοποίηση δείκτες. Και τότε, αυτό που θέλω να σας δείξω, επίσης, ήταν πώς μπορώ να πάρω το καθένα από αυτά γραμμές του πίνακα και να τους αλληλεπιδρούν - oh. Όχι. Αχ. Επίσης, θέλω να σας δείξω - εδώ, μπορώ να βάλω τον τίτλο μου χειριστήριο πλοήγησης, σωστά; Έτσι, στην πραγματικότητα, θα παρατηρήσετε, μόλις έχω ενσωματωμένο ελεγκτή αυτή την άποψη στο εσωτερικό του ελεγκτή πλοήγησης, βλέπουμε αυτή η γραμμή πλοήγησης στην κορυφή της μας storyboard εκπροσώπηση ενός ελεγκτή άποψη. Και έτσι, αυτό μας δίνει, όπως, οπτική, είδος, οδηγός ορατή οθόνη μας. Αυτό είναι προφανώς πρόκειται να είναι η γραμμή πλοήγησης. Και αυτό που θέλω να κάνω γρήγορα, τώρα, μπαίνει σε ένα άλλο - έτσι ώστε αυτός ο ελεγκτής προβολή πίνακα που έκανα με λαμβάνοντας ένα από αυτά και σύροντάς εδώ, και αυτό είναι που μου επέτρεψε να γρήγορα, πραγματικά, να δημιουργήσετε μια προβολή πίνακα ελεγκτή. Αν έχουμε την ώρα όμως, θα είστε δείτε ότι, με προγραμματισμό, είναι μια λίγο πιο δύσκολο να δημιουργήσετε έναν πίνακα άποψη του ελεγκτή, επειδή υπάρχει είναι μερικές από τις μεθόδους που απαιτούνται για να, είδος, γράψτε με σκοπό την προβολή πίνακα ελεγκτή να εμφανίζονται σωστά. Ωστόσο, θα ήθελα απλώς να σας δείξω, τώρα, ένα παράδειγμα όπου, αν πάρω αυτό, για παράδειγμα - Έχω βάλει σε έναν άλλο ελεγκτή άποψη. Και τώρα, ας πούμε ότι θέλετε να ελέγχετε alt πρώτη μου μπλε πίνακα γραμμή προς εδώ. Και θέλω να καλέσω αυτό το μπλε. Και στη συνέχεια - ας δούμε. Είμαι στην άποψη τώρα, και μπορώ να αλλάξω το υπόβαθρο σε μπλε. Και έτσι, ανακοίνωση, εδώ, αυτό το drop-down μενού σας δίνει επίσης μια ιεραρχία όλων αυτών των αντικειμένων. Έτσι, ένα σημαντικό πράγμα που πρέπει να σημειωθεί, εδώ, είναι ότι όλα αυτά τα πράγματα, εδώ - η άποψη του πίνακα ελέγχου, ο πίνακας , τομή προβολή πίνακα, προβολή πίνακα κυττάρων - όλα αυτά είναι αντικείμενα, σε κώδικα. Έτσι, ξέρετε, μια ετικέτα που αυτή τη στιγμή είναι υπό η άποψη του περιεχομένου, κ.λπ.. Ούτω καθεξής και ούτω καθεξής. Έτσι, αν τρέξουμε τον κώδικα παίρνουμε πρέπει να δείτε κάτι - Ας δούμε αν αυτό - ναι. Έτσι, εκεί που πάμε. Αλλά, αν δεν το κάνουμε αυτό, κανένας από αυτά τα άλλα πράγματα λειτουργούν. Σωστά; Έτσι, μόνο αυτό λειτουργεί. Και, για το καλό του χρόνου, δεν θα το κάνω πάει στο, ξέρετε, βάζοντας κάτω από τις άλλες. Και αυτό είναι το τέλος του, είδος, storyboard - αυτό που ήθελα να δείξω σας για storyboard. Και, έχω ένα εκπονηθεί παράδειγμα, στην πραγματικότητα, ακριβώς εδώ. Έτσι, αυτό είναι το storyboard ότι έκανα προηγουμένως. Έτσι, όπως μπορείτε να δείτε, αυτό ήταν χειριστήριο πλοήγησης μου. Τότε είχα την πρώτη ελεγκτή την άποψή μου, τότε είχα προβολή πίνακα ελέγχου μου, και τότε είχα όλα αυτά - τόσο στο παρελθόν, έκανα κάτι πολύ διαφορετικό. Έτσι, με συγχωρείτε αυτά τα πράγματα. Θα το καθαρίσει πιθανώς αργότερα πριν Στέλνω από την παραγωγή. Αλλά, αν τρέξουμε αυτό, θα δούμε ότι όλες οι επιλογές είναι έχουμε στη διάθεσή μας. Μόνο που δεν έκανε το υπόβαθρο αυτά τα χρώματα. Έτσι, ωραία απλή εφαρμογή. Τώρα, ας προσπαθήσουμε να αντιμετωπίσουμε Αυτό προγραμματισμού. OK. Έτσι, για να το κάνουμε αυτό, είμαστε ακριβώς πρόκειται για να ξεκινήσει ένα νέο πρόγραμμα Xcode. Θα είναι ένα άδειο εφαρμογή κάνει τώρα, γιατί δεν θέλουμε να έχει το storyboard. Έτσι, είμαι απλώς περιορίζουν τον εαυτό μου να μην χρησιμοποιήσετε οποιαδήποτε από τις storyboard, και άδειο αίτηση δεν θα να μου δώσει ένα storyboard. Αυτό είναι ακριβώς για να αποτρέψει τον εαυτό μου από την εξαπάτηση. Ας δούμε. Περιμένετε. Μήπως I - Ναι. OK. Δεξιά. Έτσι, εδώ, έχουμε μείνει με τίποτα άλλο, αλλά κώδικα. Έτσι, επιτρέψτε μου να περάσω αυτό το παράθυρο λίγο πάνω. Δεξιά. Όπως μπορείτε να δείτε εδώ, τα μόνα αρχεία μας δίνεται είναι AppDelegate.h και dot m, και δεν έχουμε storyboard πια. Έτσι, αν τρέξουμε αυτό, είμαστε ακόμα πρόκειται να φτάσουμε στην λευκή οθόνη, δόξα τω Θεώ. OK - λευκή οθόνη, αλλά τίποτε άλλο. Και, εδώ είναι το σημαντικό μέρος. Αυτό είναι όπου συμβαίνει η δράση. Στις προηγούμενες εκδόσεις, υπάρχει συνήθως δεν υπάρχει κωδικός εδώ, αλλά η storyboard προβλέπει κατ 'ουσίαν ο κωδικός για αυτό το μέρος. Δεν θα υπεισέλθω σε λεπτομέρειες σχετικά με το πώς. Και αυτό που θέλουμε να κάνουμε τώρα είναι, θέλουμε να πάει εδώ, και αυτό το μικρό χώρο ξεκινάει την δημιουργία νέου app μας. Έτσι - ναι; ΚΟΙΝΟ: Zoom; RHED SHI: Zoom. Ναι, σίγουρα. OK. Θα πρέπει να πληκτρολογήσετε, έτσι αυτό δεν θα πρέπει να το θέμα πάρα πολύ. OK. Έτσι, πρώτον, να θυμάστε ότι ήθελε να δημιουργήσει ένα χειριστήριο πλοήγησης, σωστά; Και επίσης, όπως μπορείτε να δείτε εδώ, Xcode κάνει μια πραγματικά πολύ καλή δουλειά του αυτο-πλήρωσης. Έτσι, όπως θα παρατηρήσετε, τα ονόματα των τα πάντα είναι πολύ περισσότερο από ό, τι συνήθως, αλλά Xcode γεμίζει μέσα για σας. Έτσι, μπορώ απλά να πατήσετε Enter. Έτσι, θέλω να δημιουργήσω μια πλοήγηση UI δείκτη του ελεγκτή, και μπορώ να το καλέσετε navigationController. Τώρα, τι να κάνω τώρα; Μετά από αυτό το σύμβολο της ισότητας, θα πρέπει, πρώτον, δημιουργήσετε μέσα από τη μνήμη. Έτσι, Πάω να κάνω NavigationController alloc - έτσι, αυτό είναι παρόμοιο με malloc, ότι εσείς που χρησιμοποιούνται στην C - και, στη συνέχεια, Πάω να το init. Έτσι, είναι πραγματικά σημαντικό ότι κάθε αντικείμενο που δημιουργείτε, θέλετε να alloc και init αυτό. Αυτό πρόκειται να το δημιουργήσει και instantialize το εσωτερικό της μνήμης, και τώρα μπορείτε να το χρησιμοποιήσετε. Εντάξει; Αν δεν το κάνετε αυτό, το αντικείμενο σας κάνει δεν υπάρχουν, και θα τρέξει σε μια δέσμη των προβλημάτων. Και τότε, θέλω να δημιουργήσω ένας ελεγκτής άποψη, σωστά; Έτσι, θέλω να δημιουργήσω μια UIViewController αστέρι - έτσι, ό, τι είναι ένας δείκτης σε Objective-C, και θα πάω να κάνω κάτι παρόμοιο, εδώ - alloc, init. OK. Και τότε τι Πάω να κάνουμε είναι, είμαι πρόκειται να - έτσι, να θυμάστε όταν κάναμε το ενσωματωμένο ελεγκτή πλοήγησης; Αυτό είναι το πώς θα το κάνουμε στον κώδικα. Θα πάμε να κάνουμε navigationController pushViewController - ΚΟΙΝΟ: [δεν ακούγεται]. Αυτό θα συμβεί για εμάς, ή -; RHED SHI: Ω, ναι. Όχι. Μου αρέσει καλύτερα. Όχι, αυτό θα λειτουργήσει για σας, πάρα πολύ. Έτσι, αυτές είναι όλες οι μέθοδοι. Έτσι pushViewController είναι μια μέθοδος, και Επίσης, πιο συγκεκριμένα, είναι μια παράδειγμα η μέθοδος του ΚΠΕ χειριστήριο πλοήγησης. Επειδή είχα να δημιουργήσει UI πλοήγησης μου αστέρι του ελεγκτή, και στη συνέχεια θα να καλέσετε αυτό το pushViewController για μου συγκεκριμένη περίπτωση της πλοήγησης UI ελεγκτή. ΚΟΙΝΟ: Μήπως πρέπει να κάνουμε την ακριβή λέξη, ή μήπως υπάρχει ήδη γι 'αυτό; RHED SHI: Ναι, γιατί είναι μια μέθοδος. Είναι σαν μια λειτουργία. Είναι σαν printf. Είναι σαν scanf. Είναι σαν strcompare. Εκτός από αυτό ξέρει τι μπορεί να θέλετε να πληκτρολογείτε, και να παρατηρήσετε ότι αυτό θα είναι πάντα καταλήξει σε πράγματα που είναι επιτρέπεται νομίμως για εσάς. Έτσι, εάν δεν εμφανίζεται τίποτα εδώ, τότε κάτι δεν πάει καλά. Έτσι, pushViewController. Έτσι, τώρα, θέλω να ωθήσει πρόσφατα μου δημιουργήθηκε UIViewController και, στη συνέχεια, κινούμενα σχέδια - ίσως όχι. Επειδή αυτό πρόκειται να είναι ο πρώτος ελεγκτής άποψη. Θέλω να πω, ακόμα κι αν δεν είχα κάνει κινουμένων σχεδίων, κατά πάσα πιθανότητα δεν θα εμφανιστεί, επειδή είναι η πρώτη οθόνη. Και να θυμάστε τα στηρίγματα. Έτσι, να θυμάστε πώς θα χρησιμοποιηθούν τα στηρίγματα; Και μέσα σε παρένθεση, η αντικείμενο καλεί μια μέθοδο - έτσι ώστε το αντικείμενό μας είναι η πλοήγηση ελεγκτή, και η μέθοδος είναι μια ώθηση προβολή ελεγκτή κινουμένων σχεδίων. Και δείτε πώς παίρνει σε δύο επιχειρήματα, και από όπου και αν χωρίζονται από το, είδος, λέξεις, και ένα κόλον. Έτσι, Objective-C προσπαθεί να κάνει ωραίο και εύκολο για σας να διαβάσει δυνατά - κωδικό σας - και να το ημι, είδος του, έχει νόημα. Ωστόσο, κάνει ακριβώς αυτό δεν είναι αρκετό. Επιτρέψτε μου τώρα σμίκρυνση. Να κάνει ακριβώς αυτό δεν είναι αρκετό για να να πάρει ό, τι έχουμε προηγουμένως. Μέχρι εδώ, θα παρατηρήσετε ότι υπάρχει στην πραγματικότητα δεν πρόκειται να είναι οποιοδήποτε είδος της bar, εδώ, σωστά; Δεν υπάρχει καμία γραμμή πλοήγησης, τα οποία μέσα ότι ακόμα δεν έχουν πάρει. Και μπορούμε να το δοκιμάσετε αυτό έξω, επίσης, από, ίσως, αλλάζοντας το φόντο ViewController, σωστά; ViewController.background-- Αχ. Έτσι, δείτε πώς ViewController δεν έχουν ένα χρώμα φόντου, ακόμα κι αν ήθελε να έχει πρόσβαση; Και αυτό γιατί ViewController είναι ένα δοχείο για την προβολή. Έτσι, έχει μια ιδιότητα άποψη, η οποία τότε έχει ένα χρώμα φόντου. Και, μπορώ να το ρυθμίσετε, είδος tediously, καλώντας το χρώμα στο αντικείμενο UIColor. Έτσι, σημείωση εδώ, redColor είναι μια μέθοδος. Είναι μια μέθοδος κατηγορία UIcolor. Επειδή δεν είχα να δημιουργήσει ένα πραγματικό παράδειγμα από ένα UIColor προκειμένου να καλέσει τη μέθοδο σε αυτό. Απλά, απλά, αυτό που ονομάζεται στο όνομα του τύπου-όπως. Εγώ, όπως, κάλεσε int, int, αν είχε, παρόμοια, μία μέθοδος σε αυτό, για παράδειγμα. Και έτσι, αν εκτελέσετε αυτόν τον κώδικα, θα παρατηρήσετε ότι το φόντο είναι στην πραγματικότητα δεν είναι κόκκινο. Είναι ακόμα λευκό. Και πώς μπορούμε να πάρει γύρω από αυτό είναι, παρατηρήσετε πως υπάρχει το self.window. Δηλαδή, όπως, ο τελικός περιέκτης για την εφαρμογή σας. Είναι το απόλυτο πράγμα που περιέχει τα πάντα στην οθόνη, για ένα iPhone ή iPad εφαρμογή. Και, βολικά, self.window έχει αυτή την ιδιότητα που ονομάζεται rootViewController. Και αυτό πρόκειται να είναι ο δείκτης το πρώτο ελεγκτή άποψη μέσα της εφαρμογής σας. Έτσι, αυτό που θέλουμε να κάνουμε εδώ, τώρα, είναι να καθορίζει το ίσο με την πλοήγηση μας ελεγκτή. Σωστά; Επειδή, από τεχνική άποψη, η πλοήγηση ελεγκτής είναι πρώτη άποψή μας ελεγκτή. Καταγράφει μια σειρά από άλλα άποψη ελεγκτές, και πιέσαμε αυτό άποψη ρυθμιστή στην εν λόγω διάταξη στο χειριστήριο πλοήγησης. Έτσι, δεν θέλετε να το κάνετε αυτό. Αυτό δεν θα σας βοηθήσει πραγματικά. Θέλετε να το κάνετε αυτό, αν θέλετε να κάνετε ένα χειριστήριο πλοήγησης, το οποίο οι περισσότεροι από εσάς ίσως θα γιατί θα θέλετε να, το είδος, έχουν κάποιο είδος του, όπως, το μενού για να επιστρέψετε ή κάποια αρχική σελίδα για να πάει πίσω, αντί να αποτελεί κενή οθόνη. Ναι; ΚΟΙΝΟ: Είναι άβολα για να μπορείτε να μεγεθύνετε το - RHED SHI: Ναι. Έτσι, ναι. Αυτός είναι ο κώδικας, και τώρα ας το δοκιμάσουν. Έτσι, εκεί που πάμε. Magic. Λοιπόν, εντάξει. Σας ευχαριστώ. OK. Μέχρι τώρα, αυτό που θέλουμε να κάνουμε είναι - έτσι, είμαστε το είδος των περιορισμένων, εδώ, σωστά; Θα μπορούσαμε ενδεχομένως να γράψετε τα πάντα εσωτερικό αυτού μία λειτουργία. Αλλά, αυτό δεν είναι το πώς η ανάπτυξη iOS συνήθως λειτουργεί. Λοιπόν, τι θα πάμε να κάνουμε είναι, είμαστε πρόκειται να δημιουργήσει κάποια νέα αρχεία. Αλλά, πιο συγκεκριμένα, θα πάμε να δημιουργήσετε άλλη μια κλάση Objective-C, ή Ένα άλλο αντικείμενο - τάξη και τα αντικείμενα είναι εναλλάξιμα εδώ. Και, εδώ είναι το πώς θα μπορούσε, ενδεχομένως, δημιουργήσετε άλλη μια κλάση των ελεγκτών U. Έτσι, είναι μια υπο-τάξη, όπως θα παρατηρήσετε, εδώ, είναι μια υπο-κατηγορία της Άποψη UI ελεγκτή, αλλά μπορώ αποκαλούν οποιοδήποτε άλλο όνομα εδώ. Θα μπορούσατε να καλέσετε αυτό CS50, θα μπορούσα να ονομάσω η άποψη του ελεγκτή, θα μπορούσα να ονομάσω αυτό το μπλα άποψη ελεγκτή - ό, τι θέλω. Αυτό είναι μόνο το όνομα για την κατηγορία. Ωστόσο, πρόκειται να είναι σημαντική διότι, κατ 'ουσίαν, τι κάνω εδώ είναι, είμαι δημιουργώντας ένα άλλο όνομα της κλάσης. Έτσι, πρόκειται να είναι, όπως, ορισμένα είδος του τύπου ή ενός αντικειμένου. Έτσι, θα πρέπει να είναι λίγο γενικό. Δεν πρόκειται να είναι πολύ συγκεκριμένες. Και επίσης, θέλω να επισημάνω από αυτές τις δύο επιλογές. Επειδή κάνουμε τα πάντα στο εσωτερικό του κώδικα, μερικές φορές είναι πολύ πιο εύκολο να φέρει σε ένα αρχείο interface, έτσι ώστε I κυριολεκτικά να drag and drop, όπως κάναμε νωρίτερα με storyboard - Ξέρετε, μια ετικέτα ή ένα κουμπί, ή οτιδήποτε άλλο. Και έτσι, xibs είναι αρχεία που σας επιτρέπουν να το κάνουμε αυτό, και θα πρέπει να το συνδέσετε σε αυτό το αρχείο ελεγκτή άποψη. Έτσι, Πάω να σκόπιμα μην ελέγξει αυτό. Συνήθως θα ήθελα να το ελέγξετε αυτό, και αν το έκανε αυτό μόνο για το iPhone ή το iPad, I θα ελέγχει αυτό και απλά να έχουν ένα για, ξέρετε, το iPhone ή το iPad. Αλλά επειδή κάνω καθολική, Πάω για τη δημιουργία δύο από αυτά αργότερα. Έτσι, Πάω να σκόπιμα καταργήστε την επιλογή αυτή. Αυτό είναι επίσης πολύ σημαντική. Πολλές φορές, είχα σφάλματα όπου αυτό δεν ελέγχθηκε. Και έτσι, προφανώς, το αρχείο αυτό δεν είναι, είδος, όπως, περιλαμβάνεται ή εισάγονται μέσα σε αυτόν το φάκελο της δοκιμής. Και έτσι, ο κωδικός μου δεν έχει απολύτως καμία ιδέα την ύπαρξη αυτού του αρχείου, και που προκαλεί πολύ πόνο και ώρες debugging. Όμως, απλά βεβαιωθείτε ότι αυτό ελέγχεται έτσι ότι, ξέρετε, ο στόχος αυτής της αρχείο είναι για αυτή την εφαρμογή. OK. Έτσι, τώρα έχουμε δημιουργήσει δύο νέα αρχεία. Και αυτά τα αρχεία φαίνονται αρκετά άδειο. Και, στην πραγματικότητα, ας συνεχίσει επίσης για τη δημιουργία των αρχείων xib. Έτσι, στο παρελθόν, ήμουν στο Κακάο Touch drop-down. Τώρα, είμαι πρόκειται να πάει στο χρήστη Interface αφής, και όπως μπορείτε να δείτε, εγώ μπορεί να δημιουργήσει ένα storyboard. Έτσι, ακόμη και άρχισα με ένα κενό εφαρμογή, μπορώ ακόμα να χρησιμοποιήσετε ένα storyboard. Παρά το γεγονός ότι, παίρνει δυσνόητο άποψη από το πώς θέλετε να συνδεθείτε ότι στον κώδικά σας. Έτσι, δεν θα πάω εκεί. Όμως, αυτό που θέλουμε να κάνουμε τώρα είναι να δημιουργήσετε μια προβολή. Και μπορείτε να επιλέξετε για ένα iPhone ή ένα iPad. Και τυπικά, για να υποδηλώσει το διαφορά - αν κάνετε μια καθολικής εφαρμογής - μπορείτε είτε να δώσει ένα χαρακτήρα υπογράμμισης iPhone, ή μπορείτε να κάνετε μια twiddly. Δεν έχει τόση σημασία. Είναι απλά για να διαφοροποιήσετε ποια άποψη είναι, για τα οποία η συσκευή. Και έτσι, τώρα φαίνονται. Έχω μια οθόνη που μπορεί να λειτουργήσει με. Και έτσι, για παράδειγμα, μπορώ να βάλω μια ετικέτα εδώ, ξέρετε, και μπορώ επίσης να θέσει ένα άλλο κουμπί εδώ. Εγώ δεν θα τον κόπο αλλαγή οι τιμές εδώ. Όμως, αυτό που είναι σημαντικό εδώ είναι ότι ο ιδιοκτήτης του αρχείου - έτσι, είμαι μέσα από το iPhone άποψη, το αρχείο iPhone xib. Και κάτω σε αυτήν την περιοχή πλοήγησης ή drop-down μενού, θέλω να πάω στο ιδιοκτήτη του αρχείου. Και αυτό είναι το πραγματικά σημαντικό βήμα εδώ. Θέλω να κάνω την προβολή κατηγορίας ελεγκτή, έτσι ώστε αυτό το αρχείο είναι xib πρόκειται να συνδέεται με ελεγκτή άποψή μου. Και κάτι που κάνω μέσα από την άποψή μου, ελεγκτής προγραμματισμού είναι πρόκειται να αντανακλάται εδώ. Έτσι, όμως, παρατηρούμε ότι - στην πραγματικότητα, ας κάνουμε αυτή την άποψη μπλε φόντο, για παράδειγμα. Ή πράσινο. Και τότε, οπότε αν θα παρατηρήσετε, πίσω αυτός ο κώδικας, αυτό είναι όπου πήραμε να μας χειριστήριο πλοήγησης. Ακόμα κι αν κάναμε αυτό το βήμα, είναι ακόμα πρόκειται να είναι κόκκινο, όχι πράσινο. Και υπάρχει ένας λόγος. Είναι επειδή, όταν inited ελεγκτή την άποψή μας, εδώ - Συγγνώμη, αυτό είναι λίγο τρελό - όταν inited άποψη ελεγκτή μας εδώ, θα το inited του γενικού τύπου UIViewController. Εντάξει; Γι 'αυτό και δεν έκανε καν με αυτή την κατηγορία. Έτσι θυμηθείτε, αυτό είναι σαν ένα μάθημα τώρα. Μπορεί να θεωρηθεί ως ένα είδος, απλά όπως UIViewController είναι ένας τύπος. Και για να το χρησιμοποιήσετε, τι που πρέπει να κάνουμε είναι να το εισαγάγετε - ViewController εισαγωγής - και, όπως μπορείτε να δείτε, autofills για μένα. Έτσι, ViewController - και τώρα, εδώ, μπορώ να αλλάξω αυτό UIViewController να ViewController. Και τώρα, εδώ, μπορώ να αλλάξω αυτό ViewController. Ας τρέξουμε αυτό και πάλι. Είναι ακόμα κόκκινο. Και ο λόγος για τον οποίο είναι ακόμα κόκκινο είναι επειδή - woah, τι συνέβη εκεί; Θέλαμε να συνδέσει αυτό το xib αρχείο με τον ελεγκτή θέα. Ωστόσο, για να γίνει πραγματικότητα ότι, πρέπει να πάμε σε αυτό. Και όταν κάνουμε το init, θέλουμε να κάνουμε initWithNibName, και στη συνέχεια θέλουμε να κάνει το κορδόνι στο View_iPhone, για παράδειγμα. Μπορείτε να αγνοήσετε το πακέτο εδώ. Και αυτό πρόκειται να επιτρέψει μας, στην πραγματικότητα - uh oh, υπάρχει ένα πρόβλημα. Δεξιά. Και έτσι, υπάρχει ένα πρόβλημα, διότι, σε Αρχείο άποψη xib μας, έχουμε ένα σήμα και έχουμε ένα κουμπί. Ωστόσο, ακόμα κι αν έχουμε συνδεθεί αυτά τα δύο, δεν υπάρχει τίποτα στο εσωτερικό του ViewController.h ή ViewController.m που αντιστοιχούν σε εκείνα κουμπιά ή οι εν λόγω ετικέτες. Έτσι, θα πρέπει να γράψετε αυτές ως ιδιότητες του ελεγκτή άποψη. Έτσι, αυτό είναι το πώς θα δηλώσουν ένα ακίνητο. Παίρνει το, συνήθως, Αυτές οι δύο επιλογές. Για τους σκοπούς μας και αυτό το σεμινάριο, Θα έλεγα ότι, σε γενικές γραμμές, περισσότερες ιδιότητες είναι nonatomic και να διατηρήσουν. Μπορείτε να διαβάσετε από την αναζήτηση στο Google, Ξέρετε, η διαφορά μεταξύ των nonatomic και να διατηρήσει, μπορείτε γνωρίζετε, η Google ή κάτι τέτοιο. Και εγώ θα σας μεταφέρει σε, όπως, Stack Υπερχείλιση, όπου οι άνθρωποι θα έχουν απαντήσεις για τις διαφορές μεταξύ αυτών. Αλλά για τώρα, αυτό είναι ό, τι θέλουν να ασχολούνται με. Και θέλουμε να κάνουμε μια ετικέτα UI, αστέρι, και μπορούμε να το ονομάσουμε ό, τι θέλουμε. Μπορούμε να ονομάσουμε αυτό, ξέρετε, ετικέτα. Και, θα δημιουργήσουμε ένα άλλο μία για το κουμπί. Και θυμηθείτε να συμπεριλάβετε τον αστερίσκο, επειδή έχουμε να κάνουμε με δείκτες λίγο πολύ παντού μέσα της Objective-C. Ωστόσο, ότι θα εξακολουθεί να μην λύσει Το πρόβλημα, όπως μπορείτε να δείτε εδώ. Και ο λόγος είναι επειδή, κάθε φορά που θέλετε να συνδέσετε μια ετικέτα αρχείων xib ή κουμπί για το πρόγραμμα, ή η επικεφαλίδα και το αρχείο της εφαρμογής, θέλουμε να προσθέσετε αυτό το κομμάτι του κώδικα - πρίζα. Σημειώστε ότι είναι η λέξη κλειδί. Και, μόλις τελειώσω την πληκτρολόγηση ότι έξω, θα πρέπει να έχουν αυτά δύο κύκλους, εδώ. Συνήθως, από όπου και αν δεν συμπληρώθηκε μέσα Δεν είμαι σίγουρος γιατί είναι. Αλλά συνήθως, θα πρέπει να το χέρι σύνδεσή τους με τη μετάβαση σε αυτή την πλευρά του η περιοχή κοινής ωφελείας. Και έτσι, αυτή τη στιγμή, έχω την ετικέτα μου επιλεγμένο, και θέλω να μεταφέρετε αυτό το νέο αναφορά έξοδο για τον ιδιοκτήτη του αρχείου μου, και, στη συνέχεια, κάντε κλικ στην ετικέτα. Έτσι τώρα, επιτέλους, αυτή η ετικέτα είναι συνδεδεμένο με αυτήν την ετικέτα. Και αυτή η ετικέτα είναι αυτό που πάμε να χρησιμοποιήσετε προγραμματισμού για να αλλάξετε τους κειμένου, τη γραμματοσειρά του, το ιστορικό του χρώμα, κ.λπ.. Οπότε, γιατί να μην κάνουμε το ίδιο για το κουμπί; Και όπως θα παρατηρήσετε, για το κουμπί, είναι λίγο πιο περίπλοκη. Επειδή, θέλω να πω, είστε υποτίθεται για να πάτημα ενός κουμπιού, έτσι ώστε να έχεις μια πολύ επιλογών για το πώς οι χρήστες να πατήσετε σε ένα κουμπί. Και τότε, θα δούμε αργότερα ότι μπορούμε να συνδέσουμε αυτό με μας κώδικα για να την κάνουμε να λειτουργήσει. Έτσι, προς το παρόν όμως, θέλουμε να συνδέσουμε αυτό με την πραγματική κουμπί εσωτερικό του κώδικά μας. Οπότε πάμε στο νέο κατάστημα αντιστοίχησης, και στη συνέχεια να κάνουμε το κουμπί. Τώρα, ας τρέχει πάλι. Uh oh. OK. Δεν ξέρω τι συμβαίνει εδώ τώρα. Πω πω. Μόνο μια στιγμή, εδώ. Στην πραγματικότητα, γιατί δεν παίρνουμε ένα δούμε ένα άλλο παράδειγμα σε το συμφέρον του χρόνου. OK. Έτσι, εδώ είναι το πιο εύκολα παρασκευάζονται παράδειγμα για ViewController. Όπως μπορείτε να δείτε εδώ, έχω περιλάβει οι ιδιότητες για την ετικέτα και το κουμπί. Και τότε, αυτό το κομμάτι του κώδικα εδώ - αυτό IBaction - Ήταν μια σύνδεση με αυτό το κουμπί εδώ. Έτσι, όπως μπορείτε να δείτε εδώ, Touch Up Inside συνδέεται προς τον επιλογέα ονομάζεται Button Pressed. Έτσι, μπορούμε πραγματικά να περάσουν από το κίνηση και πάλι, εδώ, με τη λήψη Touch Up Μέσα και σύροντάς την Ιδιοκτήτης του αρχείου και, στη συνέχεια κάντε κλικ στο κουμπί πατηθεί. Τώρα, ας τρέξει τον κώδικα μας. Μέχρι τώρα, αυτό το κουμπί λειτουργεί τώρα και θα μας μεταφέρει στην επόμενη σελίδα. Και, όσον αφορά την άποψη του χειριστηρίου μας, Αυτό είναι το κομμάτι του κώδικα που πήρε φροντίδα του Button Pressed. Και είναι σημαντικό να σημειωθεί εδώ, ότι Έχω δημιουργήσει ένα άλλο τύπο προβολής ελεγκτής ονομάζεται πίνακας προβολή ελεγκτή. Έτσι, αυτό ήταν παρόμοιο με πλάτη στο storyboard, όταν σέρνεται ένα από τα αυτοί οι ελεγκτές προβολή πίνακα στο storyboard. Είμαι δημιουργώντας μια άλλη Pointer στον ελεγκτή προβολή πίνακα, alloc και init-σης, και στη συνέχεια να κάνει αυτο dot χειριστήριο πλοήγησης, ωθήσει ViewController, αυτή η νέα viewController. Και έχω να ρυθμίσετε το animation για να ναι, γιατί τώρα μέσα από app μου, και εγώ θέλουμε να δούμε πραγματικά το animation θα από την αρχική σελίδα στον πίνακα προβολή ελεγκτή. ΚΟΙΝΟ: Μήπως ακόμα ανησυχούν σχετικά με τη συλλογή σκουπιδιών; RHED SHI: Τι είναι αυτό; Όχι. Έτσι, το ερώτημα ήταν, έχετε να συνεργαστεί με τη συλλογή σκουπιδιών; Έτσι, Xcode 4 είχαν σαν ARC, το οποίο είναι αυτόματη μέτρηση αναφοράς. Και έτσι, συνήθως όταν ξεκινάτε μια νέα του έργου, θα ελέγχει ότι, επειδή κανείς δεν θέλει πραγματικά να ασχοληθεί με απελευθερώνοντας τη μνήμη και την ουσία. Αλλά νομίζω ότι σε Xcode 5, δεν υπάρχει ακόμη ότι η επιλογή για το νέο έργο. Έτσι, αυτόματα το κάνει αυτό για σας. Ναι; ΚΟΙΝΟ: Μπορείς να εξάγει PDF στο storyboard σας; RHED SHI: Ναι, σίγουρα. Έτσι, όλα αυτά θα πρέπει να περιλαμβάνονται σε πηγαίο κώδικα, έτσι ώστε εσείς να ελέγξετε έξω το πραγματικό έργο Xcode για αυτό. Ναι; ΚΟΙΝΟ: Αλλά, εννοώ, όπως, μπορώ να εκτυπώσετε ένα PDF με το storyboard μου; Αν απλά θέλετε να εξάγετε το εικόνες για να δείξει κάποιος. RHED SHI: Ω, ναι. Νομίζω ότι, ίσως, μπορείτε απλά να να λάβει ένα στιγμιότυπο οθόνης. Ναι, και να τις στείλετε μια οθόνη shot ή κάτι τέτοιο. Ναι. Έτσι, ας δούμε. Προς το συμφέρον του χρόνου, νομίζω αυτό είναι όλο l μπορεί να καλύψει σήμερα. Αλλά, ξέρω ότι είναι, στην πραγματικότητα, απλά μόλις και μετά βίας αγγίζει την επιφάνεια του iOS ανάπτυξης. Έτσι, μη διστάσετε να επικοινωνήσετε μαζί μου αν έχετε οποιαδήποτε απορία σχετικά με το iOS ανάπτυξης. Και, ελπίζω, θα είναι σε θέση να καθαρίσει ορισμένες από τον κωδικό για την πηγή αρχεία κώδικα, έτσι ώστε θα έχετε κάποια πολύ ωραία παραδείγματα για να εργαστεί με. Εκτός από αυτό, αν εσείς θα στο CS50 Hackathon, θα μπορεί ή δεν είναι εκεί, και μπορώ να βοηθήσω με κάποια ανάπτυξη iOS, πάρα πολύ. Έτσι, ευχαριστώ πολύ, παιδιά.