Xcode- und iPhone-OS-Kuriositäten

Christian Kruse

Gestern habe ich mich, nach etwa vier Tagen Einarbeitungszeit, hingesetzt und die ersten Code-Zeilen für die Termitel-Applikation geschrieben, ganz nach dem Motto „fang men an, wird schon schiefgehen.” Dabei sind mir doch einige sehr merkwürdige Sachen aufgefallen:

Einerseits scheint Xcode #ifdef falsch oder gar nicht zu implementieren. Während #if TARGET_IPHONE_SIMULATOR wahr ist, wird #ifdef TARGET_IPHONE_SIMULATOR zu falsch ausgewertet. Das hat zu einigen Verwirrungen geführt, bis ich aus lauter Frust Code aus einem Beispiel-Projekt via Cut'n'Paste eingefügt habe, um zu prüfen, ob ich einfach nur doof bin oder blind. Ob das prinzipiell alle Symbole betrifft, kann ich noch nicht sagen, das habe ich noch nicht geprüft.

Andererseits unterscheidet sich die Keychain-API auf dem Simulator von der API, die auf dem iPhone verfügbar ist. Scheinbar benutzt der Simulator die Implementation, die durch Mac OS X zur Verfügung gestellt wird. Das führt insofern zu Problemen, als dass man Code schreiben muss für den Simulator, um es dort testen zu können, und Code schreiben muss für das iPhone. Total Banane… naja, wie auch immer, nachdem ich das wusste, habe ich eine Wrapper-Klasse um die Keychain-API geschrieben, in der via #if TATRGET_IPHONE_SIMULATOR unterschiedlicher Code für Simulator und iPhone verwendet wird. Leider nicht OS, meinen Arbeitgeber habe ich davon noch nicht so recht überzeugen können.