Question

Je cherche à rendre mon application compatible avec les anciennes versions de l'iPhone OS. Je l'ai vu faible liaison mentionné comme une option. Puis-je utiliser le code de détection de la version OS pour éviter les blocs de code que le système d'exploitation ne peut pas gérer? (Say iAD?)

if(OS >= 4.0){
//set up iADs using "NDA code"...
} 

Si oui, ce qui se passe à la place de if(OS >= 4.0)?

Était-ce utile?

La solution

Vous devriez être faible contre les nouveaux liaison cadres. A côté de cela, vous devriez vérifier la disponibilité de nouvelles API en utilisant des méthodes comme NSClassFromString, respondsToSelector, instancesRespondToSelector etc.

Par exemple. liaison faible contre MessageUI.framework (un ancien exemple, mais toujours d'actualité)

Vérifiez d'abord si la classe existe MFMailComposerController:

Class mailComposerClass = NSClassFromString(@"MFMailComposerController");
if (mailComposerClass != nil)
{
    // class exists, you can use it
}
else
{
    // class doesn't exist, work around for older OS
}

Si vous avez besoin d'utiliser de nouvelles constantes, types ou fonctions, vous pouvez faire quelque chose comme:

if (&UIApplicationWillEnterBackgroundNotification != nil)
{
    // go ahead and use it
}

Si vous avez besoin de savoir si vous pouvez utiliser des méthodes ANEW sur une classe déjà existante, vous pouvez faire:

if ([existingInstance respondsToSelector:@selector(someSelector)])
{
    // method exists
}

Et ainsi de suite. Espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top