Universelle iPhone/iPad de l'application de débogage erreur de compilation pour iPhone tests

J'ai écrit une application iPhone et iPad app universelle qui fonctionne très bien sur l'iPad simulateur sur Xcode, mais maintenant, j'aimerais tester les fonctionnalités de l'iPhone. Je ne semble pas en mesure d'exécuter le simulateur d'iPhone, avec ce code, comme il le fait toujours défaut à l'iPad?

Au lieu de cela j'ai essayé de courir sur l'appareil et qu'il commence à courir, j'obtiens l'erreur suivante:

dyld: Symbol not found: _OBJC_CLASS_$_UISplitViewController
  Referenced from: /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/Test
  Expected in: /System/Library/Frameworks/UIKit.framework/UIKit in /var/mobile/Applications/9770ACFA-0B88-41D4-AF56-77B66B324640/Test.app/TEST

Que l'Application est développée par programme plutôt que d'utiliser XIB, j'ai divisé les 2 périphériques logiques en utilisant les lignes suivantes dans la main.m méthode:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Pad");
}
else
{
    retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate_Phone");
}

À partir de ce moment-là, ils utilisent différents AppDelegates et j'ai vérifié mes en-têtes pour assurer la UISplitView n'est jamais utilisé ni importé via le Téléphone de la logique.

Comment puis-je éviter cette erreur, et est-il une meilleure façon de diviser l'universel logique, des chemins par programme-créé app?

  • Vous avez fait droit à l'exception directe de vérifier si (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) vérifier ce lien pour nice méthode utilitaire cocoabugs.blogspot.com/2010/09/...
  • Et comment trouver des références à de nouvelles Api qui n'existait pas avant 4? Grande réponse de here
InformationsquelleAutor andybee | 2010-04-11