2010-10-17 9 views
6

Je vois ce journal dans la console quand je lance mon application:Position CALayer contient NaN: [nan -0,5]

CALayer position contains NaN: [nan -0.5] 

L'application se compose d'un UITaBar dont le premier onglet est un UINavigationController. Dans le NavController je lance le AddressBookPicker. Dans le AddressBookPicker je choisis seulement d'afficher les numéros de téléphone.

Lorsque je choisis un contact qui n'a que des adresses e-mail, je vois ce journal.

Je ne vois aucun crash ou problème, juste le journal imprimé sur la console. Vous voulez vous assurer que ce n'est pas un problème caché qui se bloque sur moi après le lancement. Ci-dessous, un extrait de code pertinent et la trace de pile ci-dessous:

Je ne sais pas quelles autres parties du code coller ici, s'il vous plaît laissez-moi savoir s'il y a des articles que je peux publier pour vous aider.

Toute aide/contribution appréciée.

Merci!

code

ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; 

NSArray *displayedItems = [NSArray arrayWithObjects: [NSNumber numberWithInt:kABPersonPhoneProperty]), nil]; 

picker.displayedProperties = displayedItems; 

picker.peoplePickerDelegate = self; 

[self presentModalViewController:picker animated:YES]; 

Stacktrace

#0 0x00096377 in NSLog 

#1 0x046b38c9 in CALayerSetPosition 

#2 0x046b3846 in -[CALayer setPosition:] 

#3 0x046b375f in -[CALayer setFrame:] 

#4 0x002f510b in -[UIView(Geometry) setFrame:] 

#5 0x003dbe6d in -[UILabel setFrame:] 

#6 0x023ed095 in -[ABPersonTableViewDataSource reloadNoValueLabelAnimated:] 

#7 0x0244cf53 in -[ABPersonTableViewDataSource reloadDataIncludingHeaderView:invalidatePropertyData:] 

#8 0x023f30d4 in -[ABPersonTableViewDataSource reloadDataIncludingHeaderView:] 

#9 0x023eabc9 in -[ABPersonViewControllerHelper prepareViewWithDisplayedProperties:person:allowActions:] 

#10 0x023ea6bc in -[ABPersonViewControllerHelper loadViewWithDisplayedProperties:person:allowDeletion:allowActions:] 

#11 0x023ea598 in -[ABPersonViewController loadView] 

#12 0x0036a54f in -[UIViewController view] 

#13 0x003689f4 in -[UIViewController contentScrollView] 

#14 0x003787e2 in -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] 

#15 0x00376ea3 in -[UINavigationController _layoutViewController:] 

#16 0x0037812d in -[UINavigationController _startTransition:fromViewController:toViewController:] 

#17 0x00372ccd in -[UINavigationController _startDeferredTransitionIfNeeded] 

#18 0x00379d8b in -[UINavigationController pushViewController:transition:forceImmediate:] 

#19 0x00372b67 in -[UINavigationController pushViewController:animated:] 

#20 0x02403bc2 in -[ABPeoplePickerNavigationController pushViewController:animated:] 

#21 0x0242a424 in -[ABPeoplePickerNavigationController showCardForPerson:withMemberCell:animate:forceDisableEditing:personViewController:] 

#22 0x0242ce20 in -[ABMembersViewController showCardForPerson:withMemberCell:animate:] 

#23 0x0240a0ef in -[ABMembersController abDataSource:selectedPerson:atIndexPath:withMemberCell:animate:] 

#24 0x023fdb47 in -[ABMembersDataSource tableView:didSelectRowAtIndexPath:] 

#25 0x00333a48 in -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] 

#26 0x0032a32e in -[UITableView _userSelectRowAtIndexPath:] 

#27 0x0003f21a in __NSFireDelayedPerform 

#28 0x02631f73 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ 

#29 0x026335b4 in __CFRunLoopDoTimer 

#30 0x0258fdd9 in __CFRunLoopRun 

#31 0x0258f350 in CFRunLoopRunSpecific 

#32 0x0258f271 in CFRunLoopRunInMode 

#33 0x02f2f00c in GSEventRunModal 

#34 0x02f2f0d1 in GSEventRun 

#35 0x002ceaf2 in UIApplicationMain 

#36 0x00002554 in main at main.m:14 
+0

Salut danny, avez-vous déjà trouvé la solution à ce problème? Je reçois le même message d'erreur, tout cela avec une valeur nan différente (?). Tout conduit sur ce qui l'a causé? – epologee

Répondre

0
  1. Je ne sais pas.

  2. Je vois cela aussi - Je fais quelque chose complètement différent de vous - J'utilise le moteur de cartographie route-moi pour afficher des cartes déroulantes.

Je crois qu'il a quelque chose à voir avec défilement vues - et une couche en quelque sorte impliqué dans le défilement. Comme certains des points de vue que vous avez mentionnés, je crois, défilent, ce qui serait conforme à mes observations.

Je voudrais avoir plus de données pour vous, mais une chose que je peux vous dire est que je travaille sur l'application pour mois, et ont testé sur l'iPhone et l'iPad, appareils et simulateur , sous OS 3.2 et 4.0 - et n'ont eu aucun accident ou fuite de mémoire [du tout, ou associé à ceci].

Donc, en bref - aucune idée - mais je pense que vous allez bien!

+0

Bon à savoir, cela ne cause pas de problèmes. N'a pas eu de réponse pour cela sur la communauté des développeurs non plus. – dagnytaggart

1

Cela semble maintenant provoquer des plantages dans iOS 4.2. Essayez de choisir un contact sans numéro de téléphone, vous devriez aller à une vue qui dit pas de numéros de téléphone. L'erreur se produit lorsque vous revenez à tous les contacts, puis sélectionnez à nouveau ce contact.

Quelqu'un d'autre rencontre-t-il ce problème?

edit: Dans mon cas, j'affiche seulement des adresses email. La sélection d'un contact sans adresse e-mail deux fois provoque le blocage.

+0

Même problème pour moi. – Andrei

1

J'ai le même problème, même si cela ne semble pas se produire dans les applications intégrées (par exemple, courrier).Une solution de contournement légèrement hackish consiste à ajouter les noms First et Last à la liste des propriétés affichées - il n'affiche pas la couche "no email address" dans ce cas, mais ne plante pas non plus.

1

J'ai eu le même problème avec "la position CALayer contient NaN:". L'application était bien dans les appareils iOS3.x et iOS4.1, mais s'est écrasé dans iOS4.2.

Dans mon cas, je possède le code suivant:

CGRect frame; 
frame.size.height = kTableCellHeight - 11; 
frame.size.width = widthCell - 30; 

UILabel *descriptionLabel = [[UILabel alloc] initWithFrame:frame]; 

La création UILabel a échoué et montré que l'erreur. Dans mon cas, il a été résolu en ajoutant des valeurs arbitraires pour frame.origin (à cette fin UILabel, il n'a pas d'importance)

CGRect frame; 
frame.size.height = kTableCellHeight - 11; 
frame.size.width = widthCell - 30; 
frame.origin.x = 0; 
frame.origin.y = 0; 

UILabel *descriptionLabel = [[UILabel alloc] initWithFrame:frame]; 

Peut-être que le problème avec « la position CALayer contient NaN » est nulle parce que certains, incomplètes ou valeur non définie ou structure utilisée.