Objective-C: Generierung einer zufälligen Zahl via arc4random()

Um in Objective-C eine zufällige Ganzzahl / Random Number zu generieren könnt ihr auf folgende Funktion zurückgreifen:

int val1;
// generiert eine Ganzzahl zwischen 0 und 2
val1 = arc4random() % 3;

int val2;
// generiert eine Ganzzahl zwischen 0 und 99
val2 = arc4random() % 100;

int val3;
// generiert eine Ganzzahl zwischen 100 und 200
val3 = ((arc4random() % 101) + 100);

Praktisch dabei ist, dass ihr so auch eure Grenzen (Minimum und Maximum) setzen könnt.

Xcode 4 – Ändern der Attribute des Number Formatters

Früher war alles besser. Das hat man doch schon von Oma und Opa gehört.
Mit Xcode ist das wohl das selbe. Da ich heute mit CoreData ein bisschen rumgespielt habe und eine Zelle mit dem Number Formatter formatiert habe, danach jedoch im neuen Xcode 4 nicht finden konnte, wo ich denn die Attribute dieser Zelle mit dem Number Formatter editieren kann, dachte ich mir, dass ich nach erfolgreichem Auffinden hier einen kleinen Blogeintrag schreibe. Besser ist´s, bevor noch mehr an solchen Kleinigkeiten verzweifeln und die Nadel im Heuhaufen suchen.

Falls bei euch die Leiste links folgerndermaßen aussieht, so klickt auf den auf dem Bild markierten Pfeil um die Ansicht zu wechseln:

Xcode 4 - Finde den Number Formatter 1

 

 

 

 

 

 

 

 

 

 

In der neuen Ansicht klickt ihr euch wie auf dem Bild zu sehen durch bis ihr in der Zelle seid, die ihr mit dem Number Formatter formatiert habt:

Xcode 4 - Finde den Number Formatter 2

 

 

 

 

 

 

 

Nun könnt ihr auf der rechten Seite (sofern ihr die Toolbar ausgeklappt habt) die Attribute des Number Formatters ändern:

Xcode 4 - Finde den Number Formatter 3

 

 

 

 

 

 

 

Es folgt ein Happy End :-)

Klassenmethoden

Neben den in diesem Blogeintrag erwähnten Instanzmethoden stehen uns in Objective-C auch noch Klassenmethoden zur Verfügung. Instanzmethoden können wir wie in dem vergangenen Eintrag bereits erwähnt mit Minus deklarieren, Klassenmethoden werden somit gegenteilig mit Plus deklariert.

Syntax: +(Rückgabewert)Methodenname;

Klassenmethoden unterscheiden sich von Instanzmethoden in der Hinsicht, dass ein Aufruf einer Klassenmethode sich nicht an die einzelne Instanz einer Klasse richtet, sondern an die jeweilige Klasse selbst. Klassenmethoden können demnach nicht auf Instanzvariablen zugreifen.
Mit Hilfe von Klassenmethoden ist es zum Beispiel möglich Objekte einer Klasse zu erstellen.

Beispiel:

+(void)newStudent;

Hier wird ein neues Objekt „Student“ erzeugt (die entsprechende Implementierung der Methode natürlich vorausgesetzt).

Klassendeklaration in Objective-C

Klassendeklarationen werden in Objective-C mit @interface eingeleitet und mit @end beendet.
Auf @interface erfolgt schließlich der Bezeichner/Name der Klasse. Nach einem Doppelpunkt wird nun angegeben, von welcher Klasse die neue Klasse ihre Eigenschaften erben soll.

Synatx: @interface Name : Oberklasse {….}

Anmerkung: Es ist nur möglich eine Oberklasse anzugeben.

Der nächste Schritt besteht darin, die Instanzvariablen anzugeben.
Die Syntax für die Instanzvariablen lautet: Typ Bezeichner; 

Nun aber ein vollständiges Beispiel für eine Klasse in Objective-C:

@interface Student : NSObject {
   NSString *vorname;
   NSString *nachname;
   NSNumber *martrikelnummer;
}
- (void) setStudent: (NSString *)newStudent;
@end

Hier wurde eine einfache Klasse erstellt, die einen Studenten mit seiner Matrikelnummer abbildet. Nach der Deklaration der Instanzvariablen vorname, nachname und martrikelnummer folgt eine Instanzmethode. Die Instanzmethode ist so aufgebaut, dass zuerst in runden Klammern der Rückgabewert angegeben wird (hier void, also nichts) und anschließend nach dem Doppelpunkt der optionale Parameter der Methode.