2011-11-18 2 views
2

Pas vrai pour toutes les nouvelles méthodes iOS 5 mais j'ai découvert que l'appel de la méthode setBackgroundImage:forBarMetrics: de UINavigationBar déclenchera un avertissement 'instance method not found' si la cible de déploiement est sous 5.0. C'est même si je suis en liaison avec le SDK 5.0. Plus important encore, l'énumération UIBarMetrics utilisée en tant que paramètre est signalée comme un «identificateur non déclaré», ce qui déclenchera une erreur de compilateur.Impossible de compiler le code contenant la méthode iOS 5 lors de la définition de la cible

Une idée pourquoi tout cela est-il ainsi? J'ai réalisé que le code ne fonctionnerait pas si la cible de déploiement est inférieure à 5.0 mais je vérifie si UINavigationBar répond à ce sélecteur lors de l'exécution, donc tout devrait bien se passer. Je ne comprends pas l'erreur du compilateur. Cela ne se produit que lors de la compilation pour un périphérique, et lorsqu'un périphérique est réellement branché (l'appareil avec lequel j'ai testé fonctionne avec iOS 5.0.1).

+0

Pouvez-vous vérifier si la configuration de votre système est la même pour le simulateur que pour un appareil iOS? Pourriez-vous avoir une cible différente sous le régime iOS qui avait un sdk inférieur à 5.0? – chown

+0

Le SDK de base est toujours défini sur iOS le plus récent (iOS 5). Notez que je * suis * capable d'utiliser d'autres méthodes iOS 5 telles que childViewControllers de UIViewController. J'ai le sentiment que le problème semble être seulement pour les méthodes d'apparence (celles marquées avec UI_APPEARANCE_SELECTOR). –

Répondre

2

Eh bien, j'ai compris le mystère. J'ai réussi à résoudre le problème en supprimant SDK 4.3 (je l'ai fait copier de Xcode 3 car il ne vient pas par défaut avec le dernier paquet Xcode + SDK et je l'utilisais pour un autre projet hérité).

Je ne peux toujours pas expliquer pourquoi avoir les deux SDKs causé l'erreur depuis que je compilais clairement avec le dernier SDK.

+1

Merci l'homme, cela a fonctionné. BTW, Voici le chemin vers le dossier avec tous les SDK: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ – Soonts

Questions connexes