3 Stimmen

Führen einer iPhone-App mit einem 3.0-Feature auf einem Gerät mit 2.2.1 aus

Ich wurde gebeten, eine 3.0-Funktion (den Media Picker) zu einer App hinzuzufügen.

Aber diese App muss weiterhin auf einem 2.2.1-Gerät ausgeführt werden. (Mit der Funktion deaktiviert)

Wie kann ich dies kompilieren, so dass es auf 2.2.1 läuft, ohne einen Compilerfehler zu erhalten, der eine 3.0-Funktion einschließt?

Gemäß den Anweisungen im MailComposer-Beispiel habe ich meine Ziel-Einstellung auf 2.2.1 und mein Basis-SDK auf 3.1.2 gesetzt.

Ich habe mir das schwache Linking angesehen, aber das betrifft offensichtlich nur den Linker-Schritt und behebt keine Compilerfehler.

3voto

Mike Punkte 22052

Um die Compilerfehler zu umgehen, deklarieren Sie einfach die C-Funktionen als extern (Objective-C-Funktionen erzeugen eine Warnung, aber keine Compilerfehler). Die Linkerfehler können durch schwaches Verknüpfen behoben werden, wie Sie festgestellt haben.

0voto

DenNukem Punkte 7766

Was ich normalerweise mache, ist die Definition der Klasse, die ich brauche, nur mit den Methoden, die mich interessieren, aus dem 3.0 SDK in mein Projekt zu kopieren und dann rufe ich diese Methoden auf, als ob nichts passiert wäre. Der einzige knifflige Teil ist die Instanziierung, dafür verwenden Sie Folgendes:

MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X