2010-09-17 4 views
0

J'ai une question concernant la compilation contre les SDK, que j'ai cru comprendre jusqu'à hier.Compilation contre iOS SDKS

J'ai une application pour iPhone, que la version compilée avec SDK v3.2 et fonctionnant sur un émulateur d'iPhone version 4 marche bien, mais quand je recompile l'application contre SDK 4 l'interface commence à gâcher. Je pensais que lorsque vous écrivez une application sur un SDK/Frameworks comme iOS ou Android SDK, le code que vous écrivez est compilé dans une application (avec des bibliothèques ajoutées), puis est exécuté sur le système. Le sdk étant présent sur la machine dev pour que l'application soit capable de compiler (et d'exécuter des vérifications de compilation) mais pas réellement compilé dans le code de l'application. Ce que je ne comprends pas, c'est que si cela fonctionne comme ça, comment peut-on simplement compiler une version plus récente du SDK pour casser l'application (en gardant à l'esprit la version compilée?) comme comment n'est-ce pas encore la même application compilée.

De toute évidence, il me manque quelque chose ici!

Merci pour tous les pointeurs

Répondre

0

Tout nombre de raisons; Lorsque vous ciblez une version particulière du système d'exploitation, il peut modifier l'ensemble des API disponibles et modifier la manière dont l'application est liée. Au moment de l'exécution, le système peut effectuer ce que l'on appelle des contrôles "liés ou postérieurs". Si votre application était liée à une cible d'un ancien système d'exploitation, le nouveau système d'exploitation pourrait conserver un comportement ou s'assurer qu'un bogue existe toujours. Si ciblé sur le dernier système d'exploitation, vous obtenez le nouveau comportement. Tout ceci pour vous dire que vous avez probablement rencontré un problème dans votre code, soit que vous utilisiez un bogue dans les versions 3.x, soit que vous utilisiez une API dont le comportement a changé entre les deux versions.