leicht gemacht: NSUserDefaults Startwert festlegen

Hallo Zusammen,

in NSUserDefaults werden Einstellung des Nutzers für die App gespeichert – zum Beispiel, ob die App Sounds abspielen soll. Die Werte in NSUserDefaults werden persistiert und sind bei jedem Nachfolgenden Start wieder verfügbar. Als Speicherort für Spielständer ohne Ähnliches sollte es dennoch nicht genutzt werden.

Gelegentlich ist es sinnvoll NSUserDefaults mit gewissen Startwerten zu initialisieren. So kann man zum Beispiel einstellen, dass der Sound einer App beim ersten Start einer App an ist. Einfach den Wert auf an stellen ist hier keine Option, da so bei jedem nachfolgenden Start der Wert immer wieder mit an überschrieben wird – auch wenn der Benutzer den Sound irgendwann aus gestellt hat. Auf den selben Weg können wir den ersten Start einer App herausfinden, um zum Beispiel dem Nutzer mit einem Tutorial zu unterstützen.

In applicationDidFinishLaunching registrieren wir die beschriebenen Werte mit ihren Startwerten.

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], @"isFirstLaunch",[NSNumber numberWithBool:YES], @"soundOn",nil]];   
}

In einer nachfolgenden init oder ViewDidLoad Methode können wir nun zum Beispiel den firstLaunch Wert abfragen. Liefert er YES zurück, wurde die App das erste mal gestartet und wir können besonderen Code ausführen. Natürlich dürfen wir nun nicht vergessen den Wert von isFirstLaunch auf NO zu setzten.

-(id) init {
      // Abfrage der vorher gesetzten Boolschen Variable in NSUserDefaults  
      if ([[NSUserDefaults standardUserDefaults] boolForKey:@"isFirstLaunch"]) {   
         // der erste Start -> was besonderes machen
         // anschließend isFirstLaunch auf NO setzten, so dass beim nächsten mal die FirstStart Routine nicht erneut aufgerufen wird 
         [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"isFirstLaunch"];    
}

Bis bald.

Tutorial: Game Center Leaderboards

Hallo Zusammen,

heute geht es um Leaderboards. Wahrscheinlich hat sich jeder der schon mal ein Spiel gespielt hat bewusst oder unbewusst in ein Leaderboard eingetragen. Leaderboards sind Ranglisten eines Spiels – wer ist schnellste, war sammelt die meisten Punkte?

In diesem Tutorial zeige ich euch, wie ihr Leaderboards in iTunes Connect erstellt und aus eurer App heraus Punkte berichtet.

Weiterlesen

Tutorial: PageViewController

Hallo Zusammen,

heute beschäftigen wir uns mit dem PageViewController. Ein PageViewController ist eine Art Container. Er hält mehrere Seite zusammen und ermöglicht es dem Nutzer durch diese zu blättern. Die “Seiten” sind jedoch vollwertige ViewController mit all ihren Möglichkeiten. Daraus ergeben sich natürlich spannende Kombinationen.

Ich wähle für dieses Tutorial die Kombination aus PageViewController und TableViewController – einfach weil es für diese Zusammenstellung nur wenig Tutorials gibt. Wir erstellen also eine App die drei TableViewController in einem PageViewController bündelt. Der Nutzer kann dann in der “fertigen” App seitlich durch die Tabellen swipen.

Am Ende des Tutorials werden wir 3 View Controller im Storyboard haben. Einen StartViewController, einen PageViewController und einen TableViewController. Der StartViewController wird beim starten der App aufgerufen und hat die Aufgabe den PageViewController zu erstellen, sowie die anzuzeigenden Daten vorzuhalten. Der PageViewController wiederum initialisiert beliebig viele TableViewController, je nach Bedarf.

Weiterlesen

Tutorial: Storyboard und Delegate

Hallo Zusammen,

heute schreibe ich über Delegates. Die Übersetzung legt schon nahe worum es geht – beauftragen, übertragen. Mit Delegates überträgt man Aufgaben auf eine Instanz einer anderen Klasse – dem Delegate-Empfänger. Welche Aufgaben das sind wird im Delegate definiert. Man könnte auch sagen über Delegates wird der Delegate-Empfänger über Ereignisse eines Objektes informiert.

Weiterlesen

Tutorial: Sound abspielen mit AudioServicesPlaySystemSound

Hallo Zusammen,

heute soll es um Sounds geben. Viele gute Apps haben Sounds integriert und selbst bei Apps im Bereich der Produktivität kann ein Soundeffekt an bestimmten Stellen sinnvoll sein. Ich zeige heute wie man Sounds in eine App integriert und wie man sie mit Hilfe des Programms cfxr erstellt.

Weiterlesen