Agudo

web2

t: 504 426 710 e: pawel@agudo.pl

NSArray w konsoli

Data: 06.07.2009

Dziś postaram opisać się działanie na tablicach. Na początek towrzymy nowy projekt w Xcode z listy po lewej wybieramy Command Line Utility i zaznaczamy Fundation Tool.

Ważne jest jeszcze aby po odpaleniu aplikacji poazwyała nam się konsola. Przechodzimy do preferencji Xcode, z listy na górze wybieramy Debugging i przy etykiecie On start z listy wybieramy Show console, kilkamy na Apply i możemy zamknąć preferencje. Od teraz przy każdym zbudowaniu i odplaeniu aplikacji pojawi się nam konsola.

Konsola jest bardzo przyjazna dzięki niej możemy w łatwy sposób zobaczyć jak działa nasz program i ewentualnie odnaleźć źródło błędu. Aby wypisać coś w konsoli wystarczy wyedytować nasz plik .m, po komentarzu // insert code here...dopisujemy linijkę i wciskamy cmd+Enter(Build and Go).

NSLog(@"Test mikrofonu, %d %d %d %@", 1, 2, 3, %@"raz");

NSLog działa podobnie jak funkcja sprintf w języku C, na początku podajemy format, a później argumenty. Jeszcze jedna sprawa zanim przejdziemy do tematu wpisu. Xcode zawieram w sobie dokumentacje która nieraz się przydaje, lecz ja chciałbym polecić program AppKiDo - jest to przeglądarka API dokumentacji dla programistów Cocoa i iPhona.

Tablice są uporządkowanymi zbiorami obiektów. Cocoa udostępnia kilka klas do tablic NSArray, NSMutableArray (subklasa NSArray) i NSPointerArray. Jednak możemy także korzystać z tablic znanych w języku C.

int i;
int tablicaC[10];
for(i=1; i< 10; i++) {
tablicaC[i] = i;
}
NSLog(@"Tablica: %d, %d, %d", tablicaC[0], tablicaC[3], tablicaC[9]);

Tego kawałka kodu nie będę tłumaczył, wydaje się w miarę oczywisty. W Cococa powyższy przykład będzie to wyglądać tak:

NSMutableArray *tablicaCocoa = [[NSMutableArray alloc] init];
for(i=0; i< 10; i++) {
NSNumber *number = [[NSNumber alloc] initWithInt: i];
[tablicaCocoa addObject: number];
}
NSLog(@"Tablica Cococa: %@, %@, %@. Liczba elementów %d",
[tablicaCocoa objectAtIndex:0], [tablicaCocoa objectAtIndex:3], [tablicaCocoa objectAtIndex: 9], [tablicaCocoa count]);

Jak widać na początku musimy zainicjować obiekt NSMutbaleArray, nie używamy tu NSArray ponieważ jest to tablica statyczna, do raz stworzonego obiektu nie możemy dodawać ani usuwać elementów. Dodatkowo powinieneś wiedzieć, że do takich tablic nie możemy dodawać typów int lub float a jeżeli potrzebujemy dodać wartość nil do korzystamy z NSNull chyba, że nasz tablica jest obiektem NSPointerArrayM który może posiadać wartość nil.

W pętli tworzymy obiekt NSNumber który następnie za pomocą metody addObject: dodajemy do tablicy. Jeżeli chcemy sprawdzić ilość elementów tablicy wystarczy wywołać metdę count. Kilka metod jakie może nam się przydać podczas działania na tablicach.

– addObject:
– addObjectsFromArray:
– insertObject:atIndex:
– insertObjects:atIndexes:
– removeLastObject
– removeObject:
– removeObjectAtIndex:
– replaceObjectAtIndex:withObject:
– replaceObjectsAtIndexes:withObjects:

To wszystko na dziś, w następnym wpisie postaram się opisać klasę słownika NSDictionary.