Amikor Objective-C programot ír iPhone vagy Mac OS X alkalmazásaihoz, mindössze annyit kell tennie, hogy utasításokat ad a számítógépnek, amelyet követni kell. Alapvetően a programok manipulálják a számokat és a szöveget, és mindent figyelembe véve egy számítógépes programnak csak két része van: változók (és egyéb struktúrák), amelyek „tartják” az adatokat, és utasítások , amelyek műveleteket hajtanak végre az adatokon.
Objective-C nyilatkozat készítése
iPhone és Mac alkalmazások programozása az Objective-C-ben a nyilatkozattételről szól. Az Objective-C utasításait azonnal felismerheti, ha megjegyzi a pontosvesszőt a végén:
nyilatkozat;
Más kódsorokat fog látni, de ha a sor nem végződik pontosvesszővel, akkor ez nem egy Objective-C utasítás.
Objective-C beépített adattípusok és új adattípusok
Az Objective-C, Objective-C adattípusokban deklarált változóknak olyan típusúaknak kell lenniük, amelyeket a fordító képes felismerni. Az Objective-C számos beépített adattípussal, valamint újak létrehozására szolgáló mechanizmussal érkezik az iPhone vagy Mac OS X alkalmazások programozásához.
Beépített típusok
| típus |
Leírás |
Méret |
| char |
Egy karakter |
1 bájt |
| int |
Egész szám – egész szám |
4 bájt |
| úszó |
Egyetlen pontosságú lebegőpontos szám |
4 bájt |
| Kettős |
Dupla pontosságú lebegőpontos szám |
8 bájt |
| rövid |
Rövid egész szám |
2 bájt |
| hosszú |
Dupla rövid |
4 bájt |
| hosszú hosszú |
Dupla hosszú |
8 bájt |
| BOOL |
Logikai (előjeles karakter) |
1 bájt |
Felsorolás típusai
enum typeName { azonosító1, ... azonosító};
Az azonosítók int típusú konstansok.
typedef
typedef typeName azonosító;
Egy azonosítót egy adott típushoz társít.
Állandók
const típusú azonosító = érték;
#define azonosító érték
Lehetővé teszi az állandók nevének meghatározását.
Objective-C operátorok
Az Objective-C operátorok, a többi programozási nyelvhez hasonlóan, lehetővé teszik a változókkal végzett műveletek végrehajtását (innen a név). Az Objective-C számos operátort biztosít, és mindegyikük nyomon követése nehéz lehet az iPhone vagy Mac OS X alkalmazások programozása során. Használja a következő táblázatokat a memóriájában, hogy melyik operátor milyen feladatot hajt végre.
Aritmetikai operátorok
| Operátor |
Mit csinál |
| + |
Kiegészítés |
| – |
Kivonás |
| * |
Szorzás |
| / |
Osztály |
| % |
Modulo |
Kapcsolati és egyenlőségi operátorok
| Operátor |
Mit csinál |
| == |
Egyenlő |
| != |
Nem egyenlő |
| > |
Nagyobb, mint |
| < |
Kevesebb, mint |
| >= |
Nagyobb vagy egyenlő |
| <= |
Kisebb vagy egyenlő |
Logikai operátorok
| Operátor |
Mit csinál |
| ! |
NEM |
| && |
Logikus ÉS |
| || |
Logikai VAGY |
Összetett hozzárendelési operátorok
| Operátor |
Mit csinál |
| += |
Kiegészítés |
| -= |
Kivonás |
| *= |
Szorzás |
| /= |
Osztály |
| %= |
Modulo |
| &= |
Bitenként ÉS |
| |= |
Bitenkénti inkluzív VAGY |
| ^= |
Exkluzív VAGY |
| <<= |
Váltás balra |
| >>= |
Váltás jobbra |
Növekedés és csökkentés operátorok
| Operátor |
Mit csinál |
| ++ |
Kiegészítés |
| — |
Kivonás |
| *= |
Szorzás |
| /= |
Osztály |
| %= |
Modulo |
| &= |
Bitenként ÉS |
| |= |
Bitenkénti inkluzív VAGY |
| ^= |
Exkluzív VAGY |
| <<= |
Váltás balra |
| >>= |
Váltás jobbra |
Bitenkénti operátorok
| Operátor |
Mit csinál |
| & |
Bitenként ÉS |
| | |
Bitenkénti inkluzív VAGY |
| ^ |
Exkluzív VAGY |
| ~ |
Unáris komplementer (bitinverzió) |
| << |
Váltás balra |
| >> |
Váltás jobbra |
Egyéb operátorok
| Operátor |
Mit csinál |
| () |
Öntvény |
| , |
Vessző |
| Mérete() |
Mérete |
| ? : |
Feltételes |
| & |
Cím |
| * |
Kerülőút |
Vezérlési utasítások és hurkok az Objective-C-ben
A programozásban, akárcsak az életben, döntéseket kell hoznod, és azok alapján kell cselekedned. Az Objective-C vezérlőutasításokat és ciklusokat biztosít, hogy segítse a program működését. Érdemes lehet például valamilyen feltétel vagy állapot alapján megismételni egy utasításkészletet, vagy akár megváltoztatni a program végrehajtási sorrendjét. Itt található az Objective-C vezérlőutasítások és ciklusok alapvető szintaxisa.
ha más
if (feltétel) {
állítás(ok), ha a feltétel igaz;
}
else {
állítás(ok), ha a feltétel nem igaz;
}
számára
for (számláló; állapot; frissítésszámláló) {
végrehajtandó utasítás(ok), amíg a feltétel igaz;
}
be
A (Type newVariable a kifejezés) {
kimutatás (ok);
}
vagy
Írja be a létezőVariable ;
for (existingVariable a kifejezésben) {
nyilatkozat(ok);
}
Az Expression egy olyan objektum, amely megfelel az NSFastEnumeration protokollnak.
-
Az NSArray és NSSet felsorolása véget ért a tartalomnak.
-
Az NSDictionary felsorolása kulcsok felett van.
-
Az NManagedObjectModel felsorolása az entitások felett van.
míg
while (feltétel) {
utasítás(ok) végrehajtására, amíg a feltétel igaz
}
csinálni, miközben
do {
utasítás(ok) végrehajtására, amíg a feltétel igaz
} while (feltétel);
Ugrás kijelentések
Visszatérés ;
A végrehajtás leállítása és visszatérés a hívó funkcióhoz.
szünet;
Hagyj egy hurkot.
folytatni;
Hagyja ki a ciklus többi részét, és kezdje el a következő iterációt.
goto labelName;
...
labelName:
Abszolút ugrás a program egy másik pontjára (ne használja).
kijárat();
Leállítja a programot egy kilépési kóddal.
Osztályok deklarálása és üzenetek küldése az Objective-C-ben
Az objektumorientált programozási nyelvek lehetővé teszik osztályok deklarálását, származtatott osztályok (alosztályok) létrehozását, és üzenetek küldését az osztályból példányosított objektumoknak. Ez az objektum-orientált programozás lényege, és része azoknak az objektum-orientált kiterjesztéseknek, amelyeket az Objective-C ad hozzá a C-hez. Annak érdekében, hogy minden zökkenőmentesen működjön, rendelkezésre állnak a fordítói direktívák, amelyek lehetővé teszik, hogy a @class használatával tájékoztassa a fordítót az osztályokról és #import.
Felület
#import "Superclass.h"
@interface ClassName : Szuperosztály {
példányváltozódeklarációk;
}
metódus deklarációk
@property(attributes) példányváltozódeklaráció;
–d
Végrehajtás
#import "Osztálynév.h"
@implementation ClassName
@synthesize példányváltozó ;
módszer definíciók
–d
Üzenet szintaxis
[üzenet fogadója]
#import
#import "fájlnév.h"
Garantálja, hogy egy fejlécfájl csak egyszer kerül bele.
@osztály
@class Osztálynév;
A fordítót a felhasználó által meghatározott típusokba sorolja.