Je travaille sur une application universelle qui utilise UIPopoverController pour la version iPad. Lorsque j'utilise le simulateur iPhone (version 4.3) pour tester les chemins de code conditionnel pour iPad et iPhone, ni le couplage faible ni l'approche NSClassFromString(@"UIPopoverController")
n'indiquent le comportement attendu. Lorsque vous testez la liaison faible du framework UIKit, je m'assure d'utiliser le compilateur LLVM 2.1 et de rendre le framework UIKit 'Optionnel' dans 'Target-> Build Phases-> Link Binary with Libraries'. (Si je comprends bien est la façon de le faire dans Xcode 4.1).Problème avec la détection de la disponibilité de la classe UIPopoverController lors de l'exécution sur le simulateur iPhone
L'exécution du code
if ([UIPopoverController class]) {
...
_popover = [[UIPopoverController alloc] initWithContentViewController:controller];
...
}
sur le simulateur iPhone se bloque l'application indiquant que le [UIPopoverController class]
ne retourne pas nil
. Le remplacement de [UIPopoverController class]
par NSClassFromString(@"UIPopoverController")
ci-dessus entraîne le même plantage.
Est-ce que quelqu'un sait comment faire pour que ces vérifications conditionnelles fonctionnent sur le simulateur?
Merci pour la réponse, je suis sûr que votre proposition fonctionne. Cependant, n'était pas le point de liaison faible et de tester des classes que vous devriez seulement tester pour la fonctionnalité que vous êtes sur le point d'utiliser et donc ne pas assumer sur quels dispositifs (éventuellement futurs) la fonctionnalité est (sera) présente. Pour cette raison, je voudrais vraiment tester la fonctionnalité et non pour l'appareil. – Jonas