itunes 9 Genius Mixes aktivieren

Genius Mixe Übersicht

Genius Mixe Übersicht

Apple hat am heutigen Tag iTunes 9 veröffentlicht. Eine der Neuerungen ist dabei Genius Mixe. Wer Genius bereits in der vorherigen iTunes Version verwedente, wird sich fragen, wo Genius Mixe auffindbar ist.

Genius Mixe

Genius Mixe

Genius aktualisieren Menü

Genius aktualisieren Menü

Genius aktualisieren Fortschritt

Genius aktualisieren Fortschritt

Problemlösung: Genius aktualisieren über Store – Genius aktualisieren

Weitere Neuerungen:

  • iTunes LP
  • Verbesserte Synchronisierung
  • Home Syncing
  • Klingeltöne

NSMutableArray size count numberofitems

NSMutableArray count

NSMutableArray count

Da bei einem NSMutableArray keine size Operation funktioniert, aber die Anzahl der Elemente wichtig ist nutzt man die Operation count.

NSString *firstObject = @“firstObject“;
NSString *secondObject = @“secondObject“;

NSMutableArray *testArray = [[NSMutableArray alloc]init];
[testArray addObject:firstObject];
[testArray addObject:secondObject];

NSLog(@“Size des Arrays: %i“, [testArray count]);

Resultat eine Log Ausgabe:

2009-09-09 12:27:08.838 XML[56422:20b] Size des Arrays: 2

NSMutableArray LogAusgabe

NSMutableArray LogAusgabe

XCode Objc breakpoint bei exception

Thread XCode

Thread XCode

Wer mit Java gearbeitet hat, ist gewohnt, exceptions zu catchen, verarbeiten oder zu throwen. In XCode muss man sich da etwas umstellen. Exceptions werden bei Laufzeit geworfen und eine Möglichkeit, auf diese zu reagieren ist auf den ersten Blick nicht vorgesehen.

Wenn nun eine Exception bei einem Projekt mit mehreren tausend Zeilen Code auftritt bietet der Debugger nur wenig Hilfe die entsprechende Stelle zu finden. Die Konsolenausgabe hilft nur teilweise. Viel schöner wäre doch ein automatischer Breakpoint bei der fehlerhaften Stelle. Und genau dies ist Möglich!

Man öffne den Debugger, Klicke auf Breakpoints und füge dort einen eigenen Breakpoint mit dem Namen objc_exception_throw und der Location libobjc.A.dylib. Fertig!

XCode Breakpoints

XCode Breakpoints

XCode automatischer Breakpoint

XCode automatischer Breakpoint

Ab jetzt wird automatisch ein Breakpoint dort gesetzt, wo eine Exception geworfen wird.

trim NSString iPhone objective C

trimmed string obj c

trimmed string obj c

Aus anderen Programmiersprachen kennt man den trim(); Befehl, der folgendes tut:

trimEntfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings

In ObjC ist eine solche trim Funktionalität z.B: sinnvoll wenn man eine XML parsen möchte und in der XML Leerzeichen vor dem eigentlichen String sind.

Folgende Anweisung entfernt die störenden Leerzeichen (whitspaces):

NSString *trimmedString = [StringWithWhitespaces stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

Resultat ist ein NSString, der ohne Probleme genutzt werden kann.

Stretching Kräftigungsübungen von Triathleten

Fit for Fun stellt heute in Zusammenarbeit mit Faris al-Sultan und Stephan Vuckovic eine Reihe von sinnvollen Übungen zum Dehnen und Kräftigen des gesamten Bewegungsapparates vor. Zwar sind die Stretching-Übungen noch ausbaufähig, aber für ein schnelles Pre-Stretch sicher nicht verkehrt.

Die Übungen im Einzelnen:

  • Backstütz
  • Bodendrücker
  • Liegestütz
  • Crunch
  • Frontstütz
  • Seitstütz
  • Rumpf Beine Lift
  • Diagonal Lift
  • Dehnen der Wadenmuskulatur
  • Beinbeuger
  • Beinstrecker
  • Rückendehner
  • Nacken / Hals Dehnung
  • Trizeps

Ausgelassen werden dabei z.B. Oberschenkel oder Bizeps.

Siehe:

http://www.fitforfun.de/fitness/studiotraining/universal-workout-fit-wie-die-triathleten_did_2733.html?slide=1

Eigenes TabBar Objekt mit ViewController

Um in eine TabBarNavigation einer iPhone Anwendung ein neues TabBarNavi-Item hinzuzufügen, welches einen eigenen Controller (UIViewController) und eine eigene View hat sind folgende Schritte notwendig:

  1. Klasse für ViewController erstellen (Bsp.: MyTabItemViewController) Typ der Klasse: UIViewController
  2. Neue View Nib / XIB File erstellen (Bsp.: MyTabItemView.xib)
  3. In MyView.xib den Typ des File Owners auf den Controller umstellen (Bsp. MyTabItemViewController)
  4. In MyView.xib eine Verbindung zwischen FileOwner und der View herstellen vom Typ view
  5. Implementierung MyTabItemViewController (siehe unten A)
  6. Implementierung in AppDelegate (siehe unten B)

A: Implementierung MyViewController:


//
//  MyTabItemViewController.m
//  TabBar
//
//  Created by Alexander Jäger on 04.09.09.
//  Copyright 2009 mediajaeger.de. All rights reserved.
//
#import "MyTabItemViewController.h"


@implementation MyTabItemViewController


// Override initWithNibName:bundle: to load the view using a nib file then perform additional customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
self.title = @"MyTabItemView";

self.tabBarItem.image = [UIImage imageNamed:@"all.png"];
}
return self;
}

- (void)dealloc {
[super dealloc];
}

@end

A: Implementierung AppDelegate:


- (void)applicationDidFinishLaunching:(UIApplication *)application {
[...]
tabBarController = [[UITabBarController alloc] init];
MyTabItemViewController *aMyTabItemViewController = [[MyTabItemViewController alloc] initWithNibName:@"MyTabItem" bundle:nil];
// other ViewController
[...]
// add the Controller to the RootController
tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController,aMyTabItemViewController, nil];
[...]
// release
[aMyTabItemViewController release];
[...]

tabBarController Programm stürzt mit EXC_BAD_ACCESS ab

Wer ein iPhone Programm mit einer tabBar Navigation über einen tabBarController schreibt, kann unter Umständen das Problem erhalten, dass das Programm ohne ersichtlichen Grund mit EXC_BAD_ACCESS terminiert.

Eine mögliche Ursache ist der Array aus ViewControllern, der mit Inhalten gefüllt wird:

tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController,thirdViewController];

Dieser Array zeigt den Fehler, denn um eine korrekte Darstellung zu erhalten, muss der Array mit nil terminiert werden:

tabBarController.viewControllers = [NSArray arrayWithObjects:firstViewController, secondViewController,thirdViewController, nil];

XCode Auto Vervollständigung Code completion

XCode Code Completion Liste

Wer mit XCode arbeitet kennt die Code Completion, beim tippen wird das wahrscheinlichste in grau angezeigt und kann mit ENTER bestätigt werden. Das erspart eine Menge Arbeit.

Was jedoch tun, wenn man nicht genau weiß, welche Methoden oder Properties ein Objekt / Instanz hat?

XCode bietet dafür eine Lösung, die von vielen anderen Frameworks bekannt ist: eine Darstellung als Liste!

Diese Liste erhällt man durch ESC beim tippen und sieht dann wie oben gezeigt aus. Nun noch das gewünschte Element der Liste auswählen, fertig.

Stanford iPhone CS193P – Cocoa Programming

iPhone Stanford in iTunes

iPhone Stanford in iTunes

Ein super Einstieg in die iPhone Programmierung ist die Stanford Vorlesung CS193P, bei der zwei Apple Mitarbeiter(Evan Doll und Alan Cannistraro) von Null beginnen und das iPhone Developement Framework erklären. Zwischen den normalen Vorlesungen sind zahlreiche Special Events wie Berichte von Startup Gründern eingeschoben.

Die Vorlesungen können über iTunesU kostenfrei geladen werden und sind perfekt aufgearbeitet.

Zur Unterstützung bekommt man unter:

CS193P – Cocoa Programming

Das komplette Kursmaterial, Präsentationen, Beispiele und Tipps.

SFTP Now Free in Aptana Studio!

Aptana

Aptana

Das ist doch eine erfreuliche Nachricht: SFTP Plugin für Aptana Studio ist seit neuestem kostenfrei an Board. Für manche Entwickler war dieses Plugin der Grund, die Pro Version zu kaufen.

Blogeintrag:

SFTP Now Free in Aptana Studio! | Aptana.

Einfach Aptana auf den neuesten Stand bringen über Help -> Check for Updates schon ist das Plugin mit dabei.