joachim

This user hasn't shared any biographical information


Posts by joachim

Bildschirmfoto-2010-06-28-um-08.34.04-s.png

Universal App für iPad und iPhone/iPod Touch

Mit der Entwicklung für das iPad wurde das SDK auf 3.2 gehoben. Um das iPhone vom iPad unterscheiden zu können, sieht Apple folgende Abfrage vor:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
     // iPad mit iPhone 3.2 oder neuer.
} else {
     // Das Gerät ist ein iPHone oder iPod touch.
}

http://developer.apple.com/iphone/library/documentation/General/Conceptual/iPadProgrammingGuide/StartingYourProject/StartingYourProject.html

Das userInterfaceIdiom steht aber erst unter 3.2 und neuer zur Verfügung, sodass die o.g. Abfrage auf Geräten mit iPhone OS kleiner 3.2 zu einem Fehler führt.

Nutzt man zur Kontrolle ein altes Xcode (z.B. 3.1.4) so kann man sehen, dass dieser Code unbekannt ist und schon zur Compilezeit Fehler wirft.

Bildschirmfoto 2010-06-28 um 08.34.04-s.png

Um die Unterscheidung auch in 3.2 treffen zu können, bietet es sich an, die Abfrage durch ein ifdef zu beschränken. Abhängig davon, ob die Funktion im Framework verfügbar ist, wird der enthaltene Code ausgeführt oder nicht.

BOOL iPad = NO;
#ifdef UI_USER_INTERFACE_IDIOM
	iPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
#endif
	if (iPad) {
		nibName = @"MainView-iPad";
	} else {
		nibName = @"MainView";
	}

Der Trick ist also, davon auszugehen, dass man per Default nicht auf einem iPad läuft. Sollte man sich auf einem System befinden, das 3.2 oder höher (z.B. iOS 4) läuft, so wird die Auswertung vorgenommen. Im Falle eines Gerätes mit iOS 4 würde die Auswertung immernoch NO (False) ergeben, da es sich nicht um ein iPad handelt. Nur wenn es wirklich ein iPad ist, wird auch das nib-File für das iPad geladen.

Somit läuft der Code auf allen Geräten ab 3.0.

Update: Simyo Login erneut gestört

Die Anpassung an das geänderte Login sind eingespielt. Der Login funktioniert wieder.

Dank erneuter Homepage-Änderung ist der Login für Simyo-Kunden über Kosten derzeit nicht möglich. Eine Anpassung ist in Arbeit und wird im laufe des Tages für Abhilfe sorgen.

Bildschirmfoto-2010-06-18-um-12.39.12.png

Mehrere Absenderadressen in einem Account unter Apple Mail

Google sammelt auf meinen Wunsch hin einen Großteil meiner Mailaccounts ein. Diese einzelnen Accounts konnte ich daher auch aus Mail entfernen. Würde man den Account weiter in Mail lassen, so würde die Mail einmal im Originalpostfach und einmal im Googlepostfach angezeigt – unschön.

Daraus ergibt sich aber ein Problem. Wie sendet man nun unter der entsprechenden Mailadresse? Eine Mail an z.B. foo@bar.de wird von Google Mail sauber im Postfach noch als Emfänger foo@bar.de geführt (nicht etwa foo@googlemail.com). Über die Weboberfläche von Google Mail kann man auch dem Sender über die Adresse foo@bar.de antworten. In Mail steht einem zunächst nur das Google Konto, also foo@googlemail.com zur Verfügung.

Die Lösung besteht nun darin, die weiteren Mailadressen einfach in das Feld “E-Mail-Adresse:” im Google Account in den Einstellungen von Mail per Komma getrennt anzugeben:
foo@googlemail.com,foo@bar.de,foo2@bar.com

Der Tipp stammt von Jonathan Tron.