Xcode All-in-one Window

xcode-all-in-one-1

Da codet man monatelang mit XCode und ärgert sich Tag um Tag über die zig Fenster die mit Debugger, Build Fenster, Konsole, Simulator und Quellcode gefüllt sind.

Dazu noch ein Browser und selbst zwei Monitore sind überfüllt.

Die Lösung ist so simpel, warum Apple das nicht als default setzt ist daher fraglich.
Im XCode Preferences -> General Tab kann man das Layout umstellen, sofern alle Projekte geschlossen sind. Wenn dieses auf „All-in-one“ geändert wird, hat man ein Fenster, in dem man zwischen Debug und Code schalten kann, ins das Debug Fenster kann dann noch die Konsole eingebettet werden -> perfekt!

xcode-all-in-one-2

xcode-all-in-one-3

Link zu Apple:
http://developer.apple.com/mac/library/DOCUMENTATION/DeveloperTools/Conceptual/XcodeWorkspace/010-The_Project_Window/project_window.html

via:

http://www.mobileorchard.com/14-essential-xcode-tips-tricks-and-resources-for-iphone-devs

git unter Apple MaxOSX

git
Git unter Apple OSX ist eine richtig feine Sache.

Dazu benötigt man folgende Anleitungen:

http://blog.ardes.com/2008/5/19/git-hosting-with-leopard
http://www.koushikdutta.com/2009/04/setting-up-gitosis-server-on-os-x.html
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
http://theappleblog.com/2009/03/10/using-git-with-os-x-6-tools-to-get-you-up-and-running/

Dazu noch folgendes Tool:
http://gitx.frim.nl

Und für die Nutzung von XCode mit git dieses nette script:
http://www.komprovisation.de/attachments/download/16/xcode-git-init.sh (http://www.komprovisation.de/news/show/9)

Gut ist auch git gui

In der shell muss dann in das Verzeichniss gewechelt werden und bei jeder Änderung folgendes eingegeben werden:

git commit -a

Worauf ein vi aufgeht, der die Änderungen aufzeigt und ein Kommentar eingegeben werden kann. (vi speichert mit :wq.

Eine schöne Beschreibung von der git Handhabung in dieser PDF file:

http://uberhip.com/projects/presentations.html

Wer ein git repository unter debian anlegen möchte um seine eigenen git repos zu verwalten:
http://debian.asconix.com/git-central-debian-howto und mit web access:
http://www.cryptronic.de/wiki/Blogs/20070408_howto_debian_setup_subversion_daemon_with_web_access

weitere Links:

http://stefanimhoff.de/notiz/einstieg-in-git-als-versionskontrollsystem/

http://www.online-tutorials.net/programmierung/git/tutorials-t-3-263.html#erste-schritte

http://www.kernel.org/pub/software/scm/git/docs/everyday.html

http://hoth.entp.com/output/git_for_designers.html

Custom UITableViewCells with Interface Builder

Hier eine gute Anleitung für eigene Tabellenzellen, dem ist nichts hinzuzufügen.

Sowohl komplett „from scratch“ als auch per „Interface Builder“ wird alles erklärt.

Eine Table-Cell kann dann mittels Labels als Outlets mit Informationen gefüllt werden.

Hier ein Video dazu:

iPhone sleep usleep sleepForTimeInterval NSTimer

3 Möglichkeiten eine iPhone Anwendung zu pausieren:

[NSThread sleepForTimeInterval:5];
sleep(5);
usleep(5000000);

Alle 3 Anweisungen bewirken das gleiche Ergebniss, die Anwenudng wird schlafen gelegt. nachteil aller Optionen: die Anwendung wird wirklich unterbrochen, d.h. weitere Schritte sind nicht möglich.

Wenn man die Anweundung nicht komplett pausieren möchte, könnte der NSTimer ein gewünschtes Ergebniss liefern:

- (IBAction)tueEtwas:(id)sender
{
[indicator startAnimation:self];


// tue etwas


[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(stopTueEtwas:)
userInfo:nil
repeats:NO];
}


- (void)stopTueEtwas:(id)sender
{
[indicator stopAnimation:self];
[sender invalidate];
}

Das startet einen NSTimer, der nach 5 Sekunden eine Methode aufruft.

sleep();

usleep();

UISwitch Beispiel

UISwitch

UISwitch

UISwitch ist ein relativ einfaches Objekt. Es hat zwei Zustände: On und Off. Diese können abgerufen werden.

Um ein UISwitch zu nutzen, wird über den Interface Builder ein UISWitch in die Oberfläche gezogen. Im entsprechenden Controller ein Outlet anlegen:

.h File:
[...]IBOutlet UISwitch *mySwitcher;[...]

Zusätzlich noch eine Property:

@property (nonatomic, retain) IBOutlet UISwitch *mySwitcher;

.m File
@synthesize mySwitcher;

Implementierung:

if (mySwitcher.on) NSLog(@"switch Status: on");
else NSLog(@"switch Status: off");

Abschließend noch im Interface Builder die Verbindung zwischen Outlet und dem eigetlichen UIElement herstellen, fertig.

via: chris-software

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.

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.