Pirmosiose pamokose supažindinome su Objective-C programos rašymu, kompiliavimu ir paleidimu. Šioje pamokoje pabandysime detaliau paaiškinti programos struktūrą. Taigi pasinaudosime praeitose dvejose pamokose naudotu programos kodu:
// Pirmosios programos pavyzdys
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Pirmoji programa");
[pool drain];
return 0;
}
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Pirmoji programa");
[pool drain];
return 0;
}
Objective-C programavime mažosios ir didžiosios raidės turi skirtingas reikšmes. Taip pat Objective-C programavime programos kodą galime rašyti bet kurioje eilutės vietoje, tai jokios reikšmės kodui neturės.
Pirmoji šio programos kodo eilutė yra komentaras (comment):
// Pirmosios programos pavyzdys
Komentarai dažniausiai yra naudojami norint paaiškinti pačią programą, tarkim tam tikrą jos eilutę. Objective-C programavime komentarai apibrėžti dviem slash simboliais // . Kompiliatorius pamatęs slash simbolius (//) ignoruos visą tolimesnį tekstą.
Taip pat norėdami komentuoti galime pasinaudoti ir simboliais / ir *. /* parodo komentaro pradžią, o pabaigą */ . Visas tekstas esantis tarp /* ir */ kompiliatoriaus bus suprastas, kaip komentaras. Šis komentavimo būdas yra naudojamas, kaip komentarą sudaro daug teksto:
/*
Pirmosiose pamokose supažindinome su Objective-C
programos rašymu, kompiliavimu ir paleidimu.
Šioje pamokoje pabandysime detaliau paaiškinti programos struktūrą.
*/
Pirmosiose pamokose supažindinome su Objective-C
programos rašymu, kompiliavimu ir paleidimu.
Šioje pamokoje pabandysime detaliau paaiškinti programos struktūrą.
*/
Kita mūsų programos kodo eilutė nurodo kompiliatoriui surasti ir paleisti
Foundation.h failą:
#import
#import nurodo importuoti informaciją iš nurodyto failo į programą. Šiuo atveju mes importuojame failą Foundation.h, kuris turi informaciją apie klases ir funkcijas, kurios bus reikalingos programos veikimui užtikrinti.
Tolimesnėje programos kodo eilutėje main nurodo programos pavadinimą:
Tolimesnėje programos kodo eilutėje main nurodo programos pavadinimą:
int main (int argc, const char *argv[])
main yra specialus pavadinimas, kuris tiksliai indikuoja, kur programa turi pradėti vykdymą. Int nurodo, jog main tipas yra sveikasis skaičius (integer).
Taigi, kai nurodėme sistemai vykdymo pradžią (main), galime pradėti apibrėžimą ką sistema turės vykdyti. Programos vykdymo vieta bus apribota simboliais { - nurodo pradžią ir } - nurodo pabaigą. Mūsų programos vykdymo vietą sudaro 4 dalys.
Pirmoji dalis yra ši:
Taigi, kai nurodėme sistemai vykdymo pradžią (main), galime pradėti apibrėžimą ką sistema turės vykdyti. Programos vykdymo vieta bus apribota simboliais { - nurodo pradžią ir } - nurodo pabaigą. Mūsų programos vykdymo vietą sudaro 4 dalys.
Pirmoji dalis yra ši:
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Šioje dalyje programa išsaugo vietą atmintyje kintamajam autorelease pool. Antroje vykdymo dalyje NSLog nurodo, kad ši dalis turi būti iškviesta. Parametras ar argumentas, kuris turi būti perduodamas pasinaudojant NSLog yra toks:
@"Pirmoji programa"
Po simbolio @ yra rašomas tekstas, kurį norime gauti įvykdę programą. Bendrai tai vadinama NSString objekto konstanta.
NSLog yra Objective-C programavimo bibliotekos funkcija, kuri atvaizduoja arba registruoja argumentą ar argumentus. Jis atvaizduoja datą ir laiką, kada buvo įvykdyta programa, taip pat programos vardą.
Kiekvienos vykdomos eilutės pabaigoje turi būti padėtas simbolis (;), kuris nurodo esamos eilutės ir jos vykdymo pabaigą.
Prieš išjungiant programą turime atlaisvinti užimtą atminties vietą (bei objektus, kurie buvo naudojami programoje). Taigi tam padaryti naudojama trečiosios vykdymo dalies eilutė:
[pool drain];
Naudojant Xcode programą ši eilutė bus automatiškai įvesta.
Paskutinioji, t.y. ketvirtoji programos vykdymo eilutė atrodo taip:
return 0;
Ji nurodo nutraukti main vykdymą ir grįžti atgal, arba grąžinti, vertę lygią 0. Taigi 0 reiškia, kad programos vykdymas įvyko gerai. Bet kokia kita reikšmė reiškia, kad atsirado kažkokia vykdymo problema, tarkim programa nesugebėjo surasti tam tikro jai reikalingo failo.
Jeigu naudojate Xcode programą ir pažvelgsite į Debug konsolės langą, prisiminsite, kad po gautojo programos rezultato NSLog išveda:
Jeigu naudojate Xcode programą ir pažvelgsite į Debug konsolės langą, prisiminsite, kad po gautojo programos rezultato NSLog išveda:
The Debugger has exited with status 0.
Taigi supažindinome su paprastos Objective-C programos struktūra. Dabar galime šiek tiek pakeisti turimą programos kodą, tarkim pridėdami tekstą „Pirmosios programos antroji eilutė“. Tai galime atlikti paprastai, tiesiog pridedami antrąjį kreipinį į NSLog:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Pirmoji programa");
NSLog (@"Pirmosios programos antroji eilute");
[pool drain];
return 0;
}
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Pirmoji programa");
NSLog (@"Pirmosios programos antroji eilute");
[pool drain];
return 0;
}
Įvykdę programą gausime tokį rezultatą:
Pirmoji programa
Pirmosios programos antroji eilute
Pirmosios programos antroji eilute
Galime šiek tiek pakalbėti apie apie simbolį \n , kuris yra žinomas, kaip naujos eilutės (newline) simbolis. Šis simbolis nurodo sistemai pereiti į naują eilutę. Taigi jei norime iššpausdinti tektą pirmoje eilutėje rašome tekstą ir simbolį \n, o po šio simbolio esantis tekstas jau bus sekančioje eilutėje.
Galime pasinaudoti tokiu pavyzdžiu:
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Testas...\n..1\n...2\n....3");
[pool drain];
return 0;
}
int main (int argc, const char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Testas...\n..1\n...2\n....3");
[pool drain];
return 0;
}
Įvykdę programą gausime tokį rezultatą:
Testas...
..1
...2
....3
..1
...2
....3
Ateinančioje pamokoje supažindinsime su Objective-C programavimo kintamųjų verčių atvaizdavimu.
Rengiant pasiremta knyga: Stephen G. Kochan “Programming in Objective-C 2.0”
Komentarų nėra:
Rašyti komentarą