iPhone SDK: échec Assertion en - [UILabel setFont:]

voix
1

J'ai une application iPhone qui compile et fonctionne très bien dans le simulateur sur mon ordinateur portable. Maintenant, j'essaie de construire et exécuter le même code dans le simulateur sur un iMac, et il commence et me permet de cliquer sur un bouton, mais je reçois un échec d'assertion.

Voici ce qui est dans la console:

*** Assertion failure in -[UILabel setFont:], /SourceCache/UIKit/UIKit-738/UILabel.m:438
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: font != nil'
Stack: (
2493366603,
2432871995,
2493366059,
2459146836,
817183141,
817926218,
837317240,
837317032,
837315376,
837314643,
2492860866,
2492867620,
2492869880,
85304,
85501,
816175835,
816221412,
9096,
8930
)

Voici la trace de la pile:

#0  0x949dbff4 in ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___
#1  0x9102ae3b in objc_exception_throw
#2  0x94962ad3 in CFRunLoopRunSpecific
#3  0x94962cf8 in CFRunLoopRunInMode
#4  0x00014d38 in GSEventRunModal
#5  0x00014dfd in GSEventRun
#6  0x30a5dadb in -[UIApplication _run]
#7  0x30a68ce4 in UIApplicationMain
#8  0x00002388 in main at main.m:16

Mon code ne fait pas d'appels directs à setFont :. Cependant, ce serait le point dans l'exécution du programme dans lequel certains boutons sont rendus visibles pour la première fois.

J'ai googlé. Quelques personnes ayant des problèmes similaires disent que cela se fixe comme par magie quand ils modifient le NIB, ou changer leur fuseau horaire, ou d'autres bizarreries.

Toutes les idées que la cause réelle est?

(S'il vous plaît pas d'pleurnicher sur NDA.)


Mise à jour: Si je change la police de certains de mes boutons de « TimesNewRomanPS-BoldMT » à « Times », l'échec d'assertion ne se produit plus. Mais pourquoi je ne peux pas utiliser la police souhaitée, qui existe sur l'iPhone, est installé sur la nouvelle machine, et peut être sélectionnée dans Interface Builder?

Créé 15/10/2008 à 02:04
utilisateur
Dans d'autres langues...                            


5 réponses

voix
1

Si vous avez UILabels dans votre fichier xib, ils peuvent être en quelque sorte de corruption, ou vous pouvez avoir définir une police à ceux qui n'existe pas sur vos deux machines (vous pouvez utiliser la commande-T lors de la modification d'un UILabel pour afficher la sélecteur de police, pas sûr qu'il est possible de définir une police non-iPhone, mais il peut être). Dans le cas contraire, essayez de supprimer UILabels de votre fichier xib jusqu'à ce qu'il tourne, et il y a votre coupable.

Créé 15/10/2008 à 02:45
source utilisateur

voix
1

Et si ce n'est pas un UILabel, il peut être un UIButton (qui contient un UILable), etc.

Créé 28/02/2009 à 08:07
source utilisateur

voix
0

Tous ne sont pas disponibles dans l'iPhone, seules certaines polices.

Créé 14/07/2009 à 09:31
source utilisateur

voix
1

Eu le même problème, mais dans une situation particulière. Seulement lorsque le code a été compilé pour iOS 4, mais déployé sur l'appareil avec 3.1.3 Suppression Arial-étroite et cela a fonctionné.

Créé 04/09/2010 à 19:49
source utilisateur

voix
0

Nous avons rencontré ce problème parce que nous avons utilisé [UIFont fontWithName:fontSize:]le nom Helvatica Bold(avec un espace) au lieu de Helvetica-Bold(avec un tiret). Helvatica Boldapparemment fonctionne sur les versions actuelles du système d'exploitation, mais pas sur iOS 3.1. Helvetica-Boldsemble être la version correcte.

Créé 20/04/2012 à 23:35
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more