Όταν γράφετε ένα πρόγραμμα Objective-C για τις εφαρμογές σας iPhone ή Mac OS X, το μόνο που κάνετε είναι να παρέχετε ένα σύνολο οδηγιών που πρέπει να ακολουθήσει ο υπολογιστής. Ουσιαστικά, τα προγράμματα χειρίζονται αριθμούς και κείμενο, και λαμβανομένων υπόψη όλων των πραγμάτων, ένα πρόγραμμα υπολογιστή έχει μόνο δύο μέρη: μεταβλητές (και άλλες δομές), που «κρατούν» τα δεδομένα και οδηγίες , που εκτελούν λειτουργίες σε αυτά τα δεδομένα.
Κάνοντας μια δήλωση στόχου-Γ
Ο προγραμματισμός εφαρμογών iPhone και Mac στο Objective-C είναι να κάνετε μια δήλωση. Μπορείτε να αναγνωρίσετε μια δήλωση στο Objective-C αμέσως σημειώνοντας το ερωτηματικό στο τέλος:
δήλωση;
Θα δείτε άλλες γραμμές κώδικα, αλλά εκτός και αν η γραμμή τελειώνει με ερωτηματικό, δεν είναι μια πρόταση Objective-C.
Objective-C Ενσωματωμένοι τύποι δεδομένων και νέοι τύποι δεδομένων
Οι μεταβλητές που δηλώνετε στους τύπους δεδομένων Objective-C, Objective-C, πρέπει να είναι ένας τύπος που μπορεί να αναγνωρίσει ο μεταγλωττιστής. Το Objective-C συνοδεύεται από έναν αριθμό ενσωματωμένων τύπων δεδομένων, καθώς και μηχανισμούς για τη δημιουργία νέων, για τον προγραμματισμό των εφαρμογών σας iPhone ή Mac OS X.
Ενσωματωμένοι τύποι
Τύπος |
Περιγραφή |
Μέγεθος |
απανθρακώνω |
Ενας χαρακτήρας |
1 byte |
ενθ |
Ένας ακέραιος — ένας ακέραιος αριθμός |
4 byte |
φλοτέρ |
Αριθμός ενιαίας κινητής υποδιαστολής ακριβείας |
4 byte |
Διπλό |
Αριθμός κινητής υποδιαστολής διπλής ακρίβειας |
8 byte |
μικρός |
Ένας σύντομος ακέραιος αριθμός |
2 byte |
μακρύς |
Ένα διπλό κοντό |
4 byte |
μακρύ μακρύ |
Ένα διπλό μακρύ |
8 byte |
ΜΠΟΥΛ |
Boolean (υπογεγραμμένο char) |
1 byte |
Τύποι απαρίθμησης
enum typeName { identifier1, ... identifiern};
Τα αναγνωριστικά είναι σταθερών τύπου int.
typedef
typedef typeName Αναγνωριστικό;
Συσχετίζει ένα αναγνωριστικό με έναν συγκεκριμένο τύπο.
Σταθερές
αναγνωριστικό τύπου const = τιμή;
#define τιμή αναγνωριστικού
Σας επιτρέπει να ορίσετε ονόματα για σταθερές.
Objective-C Operators
Οι τελεστές Objective-C, όπως αυτοί σε άλλες γλώσσες προγραμματισμού, σας επιτρέπουν να εκτελείτε λειτουργίες σε μεταβλητές (εξ ου και το όνομα). Το Objective-C παρέχει πολλούς χειριστές και η παρακολούθηση όλων αυτών μπορεί να είναι δύσκολη καθώς προγραμματίζετε τις εφαρμογές iPhone ή Mac OS X. Χρησιμοποιήστε τους παρακάτω πίνακες για να δώσετε κίνηση στη μνήμη σας ως προς το ποιος χειριστής εκτελεί ποια εργασία.
Αριθμητικοί τελεστές
Χειριστής |
Τι κάνει |
+ |
Πρόσθεση |
– |
Αφαίρεση |
* |
Πολλαπλασιασμός |
/ |
Διαίρεση |
% |
Modulo |
Τελεστές Σχέσεων και Ισότητας
Χειριστής |
Τι κάνει |
== |
Ισο με |
!= |
Οχι ίσο με |
> |
Μεγαλύτερος από |
< |
Λιγότερο από |
>= |
Μεγαλύτερο ή ίσο με |
<= |
Μικρότερο ή ίσο με |
Λογικοί τελεστές
Χειριστής |
Τι κάνει |
! |
ΔΕΝ |
&& |
Λογικό ΚΑΙ |
|| |
Λογικό Ή |
Χειριστές σύνθετης ανάθεσης
Χειριστής |
Τι κάνει |
+= |
Πρόσθεση |
-= |
Αφαίρεση |
*= |
Πολλαπλασιασμός |
/= |
Διαίρεση |
%= |
Modulo |
&= |
Bitwise ΚΑΙ |
|= |
Bitwise Inclusive Ή |
^= |
Αποκλειστικό Ή |
<<= |
Shift Αριστερά |
>>= |
Shift Right |
Χειριστές Αύξησης και Μείωσης
Χειριστής |
Τι κάνει |
++ |
Πρόσθεση |
— |
Αφαίρεση |
*= |
Πολλαπλασιασμός |
/= |
Διαίρεση |
%= |
Modulo |
&= |
Bitwise ΚΑΙ |
|= |
Bitwise Inclusive Ή |
^= |
Αποκλειστικό Ή |
<<= |
Shift Αριστερά |
>>= |
Shift Right |
Bitwise Operators
Χειριστής |
Τι κάνει |
& |
Bitwise ΚΑΙ |
| |
Bitwise Inclusive Ή |
^ |
Αποκλειστικό Ή |
~ |
Unary συμπλήρωμα (αναστροφή bit) |
<< |
Shift Αριστερά |
>> |
Shift Right |
Άλλοι χειριστές
Χειριστής |
Τι κάνει |
() |
Εκμαγείο |
, |
Κόμμα |
Μέγεθος του() |
Μέγεθος του |
? : |
Υποθετικός |
& |
Διεύθυνση |
* |
Πλάγια μέσα |
Δηλώσεις ελέγχου και βρόχοι στον στόχο-Γ
Στον προγραμματισμό, όπως και στη ζωή, πρέπει να παίρνεις αποφάσεις και να ενεργείς σύμφωνα με αυτές. Το Objective-C παρέχει δηλώσεις ελέγχου και βρόχους για να βοηθήσει το πρόγραμμά σας να αναλάβει δράση. Μπορεί να θέλετε να επαναλάβετε ένα σύνολο εντολών με βάση κάποια συνθήκη ή κατάσταση, για παράδειγμα, ή ακόμα και να αλλάξετε τη σειρά εκτέλεσης του προγράμματος. Εδώ είναι η βασική σύνταξη για δηλώσεις και βρόχους ελέγχου Objective-C.
αν αλλιώς
αν (συνθήκη) {
δήλωση(εις) εάν η συνθήκη είναι αληθής.
}
άλλο {
δήλωση(εις) εάν η συνθήκη δεν είναι αληθής·
}
Για
για (counter; condition; update counter) {
δήλωση(ες) να εκτελεστούν όσο η συνθήκη είναι αληθής.
}
για μεσα
for (Πληκτρολογήστε newVariable στην έκφραση ) {
statement(s);
}
ή
Πληκτρολογήστε existentVariable ;
for (existingVariable in έκφραση) {
δήλωση(ες)·
}
Η έκφραση είναι ένα αντικείμενο που συμμορφώνεται με το πρωτόκολλο NSFastEnumeration.
-
Μια απαρίθμηση NSArray και NSSet υπερβαίνει το περιεχόμενο.
-
Μια απαρίθμηση NSDictionary είναι πάνω από τα κλειδιά.
-
Μια απαρίθμηση NSmanagedObjectModel είναι πάνω από οντότητες.
ενώ
ενώ (συνθήκη) {
δήλωση(ες) για εκτέλεση όσο η συνθήκη είναι αληθής
}
κάνε ενώ
κάνω {
δήλωση(ες) για εκτέλεση όσο η συνθήκη είναι αληθής
} while (συνθήκη);
Μεταπήδηση δηλώσεων
ΕΠΙΣΤΡΟΦΗ ;
Σταματήστε την εκτέλεση και επιστρέφετε στη λειτουργία κλήσης.
Διακοπή;
Αφήστε ένα βρόχο.
να συνεχίσει;
Παραλείψτε τον υπόλοιπο βρόχο και ξεκινήστε την επόμενη επανάληψη.
goto labelName;
...
labelName:
Ένα απόλυτο άλμα σε άλλο σημείο του προγράμματος (μην το χρησιμοποιήσετε).
έξοδος();
Τερματίζει το πρόγραμμά σας με έναν κωδικό εξόδου.
Δήλωση τάξεων και αποστολή μηνυμάτων στο Objective-C
Οι αντικειμενοστρεφείς γλώσσες προγραμματισμού σάς επιτρέπουν να δηλώνετε κλάσεις, να δημιουργείτε παράγωγες κλάσεις (υποκλάση) και να στέλνετε μηνύματα στα αντικείμενα που δημιουργούνται από μια κλάση. Αυτή είναι η ουσία του αντικειμενοστρεφούς προγραμματισμού και μέρος των αντικειμενοστρεφών επεκτάσεων που προσθέτει το Objective-C στο C. Για να διασφαλιστεί ότι όλα λειτουργούν ομαλά, υπάρχουν διαθέσιμες οδηγίες μεταγλωττιστή που σας επιτρέπουν να ενημερώνετε τον μεταγλωττιστή για τις τάξεις σας χρησιμοποιώντας το @class και #εισαγωγή.
Διεπαφή
#import "Superclass.h"
@interface ClassName : Superclass {
Δηλώσεις μεταβλητών για παράδειγμα.
}
δηλώσεις μεθόδων
Δήλωση μεταβλητής παρουσίας @property(attributes).
-ρε
Εκτέλεση
#import "ClassName.h"
@implementation ClassName
@synthesize μεταβλητή στιγμιότυπου ;
ορισμούς μεθόδων
-ρε
Σύνταξη μηνυμάτων
[μήνυμα παραλήπτη]
#εισαγωγή
#import "filename.h"
Εγγυάται ότι ένα αρχείο κεφαλίδας θα συμπεριληφθεί μόνο μία φορά.
@τάξη
@class ClassName;
Υποδεικνύει τον μεταγλωττιστή σε τύπους που ορίζονται από το χρήστη.