2009-11-13 4 views
0

L'application utilise la fonction SDK 3.x, mais doit être exécutée sur des périphériques 2.x. La solution semble utiliser "weak linking", ce que j'ai fait, mais l'application ne parvient toujours pas à * compiler * pour l'iPhone 2.2.1: "Framework non trouvé MapKit".Liaison faible avec Interface Builder

Compilez pour la cible "Device 3.0 - Debug" est ok, installe même sur mon iPod Touch fonctionnant sous 2.2.1! Fonctionne bien tant que je n'active pas la vue en utilisant MapKit, plante si je le fais.

J'ai créé une vue à l'aide d'Interface Builder et y ai déplacé un objet MkMapView. Pour autant que je sache, c'est la seule référence à MapKit, donc la question est: quand j'utilise un lien faible, puis-je utiliser des éléments d'interface utilisateur connexes dans IB? Dois-je faire tout cela en XCode seulement? Devinez oui, mais être capable d'installer et exécuter l'application "3.0" sur "2.2.1" appareil me confond ...

+0

Personne ne sait? Question trop facile? Trop difficile? Est-ce que j'essaie de faire cette chose d'une «mauvaise» manière, est-ce quelque chose qui ne devrait tout simplement pas être fait avec IB? – JOM

Répondre

2

Vous ne devez pas charger un fichier nib qui contient 3.0 seulement des objets comme MKMapView sur un périphérique 2.0. Cela signifie que vous devez vérifier à partir du code la disponibilité du framework/des classes que vous utilisez dans la plume. Si elles ne sont pas disponibles, vous ne devez pas charger la plume.

Voici comment vous pouvez vérifier si le kit de carte est disponible:

if (NSClassFromString(@"MKMapView") != NULL) { 
    // load nib, map kit is available 
} else { 
    // do something else, map kit is not there 
} 
Questions connexes