2010-10-17 20 views
6

veo este registro en la consola cuando corro mi aplicación:posición CALayer contiene NaN: [nan -0,5]

CALayer position contains NaN: [nan -0.5] 

La aplicación consiste en un UITaBar de las cuales la primera pestaña es un UINavigationController. En el NavController, estoy lanzando el AddressBookPicker. En el AddressBookPicker solo estoy eligiendo mostrar números de teléfono.

Cuando elijo en un contacto que solo tiene direcciones de correo electrónico, es cuando veo este registro.

No veo ningún bloqueo ni problema, solo el registro impreso en la consola. Quiero asegurarme de que este no sea un problema oculto que se cierre después del lanzamiento.

A continuación se muestra un fragmento de código relevante y stacktrace. No estoy seguro de qué otras partes del código pegar aquí, por favor avíseme si hay alguna publicación que pueda ayudar.

Cualquier ayuda/entrada apreciada.

Gracias!

Código

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

Hola, Danny, ¿alguna vez has encontrado la solución a este problema? Recibo el mismo mensaje de error, todo sea con un valor nan diferente (?). ¿Alguna pista sobre qué lo causó? – epologee

Respuesta

0
  1. No sé.

  2. Veo esto también - Estoy haciendo algo completamente diferente de usted - Estoy usando el motor de mapeo route-me para visualizar mapas desplazables.

I creer que tiene algo que ver con el desplazamiento vistas - y una capa de algún modo implicado en el desplazamiento. Como creo que algunas de las vistas que mencionas se desplazan, esto coincidiría con mis observaciones.

Me gustaría tener más datos para usted, pero una cosa que puedo decirle es que he estado trabajando en la aplicación para meses, y he estado probando en el iPhone y el iPad, los dispositivos y el simulador , en los sistemas operativos 3.2 y 4.0, y no ha tenido bloqueos ni pérdidas de memoria [en absoluto, ni asociado a esto].

Así que en resumen, no tengo idea, pero creo que estás bien.

+0

Es bueno saber que no causa problemas. Tampoco obtuve una respuesta para esto en la comunidad de desarrolladores. – dagnytaggart

1

Esto parece causar bloqueos en iOS 4.2. Intente elegir un contacto sin número de teléfono, debe ir a una vista que dice Sin números de teléfono. El bloqueo ocurre cuando regresas a Todos los contactos y luego seleccionas ese contacto nuevamente.

¿Alguien más está experimentando este problema?

editar: En mi caso, solo estoy mostrando las direcciones de correo electrónico. Escoger un contacto sin una dirección de correo electrónico dos veces causa el colapso.

+0

Mismo problema para mí. – Andrei

1

Estoy teniendo el mismo problema, aunque no parece ocurrir en las aplicaciones integradas (por ejemplo, correo).

Una solución provisional poco hackosa es agregar los nombres y apellidos a la lista de propiedades mostradas; no muestra la capa "sin dirección de correo electrónico" en ese caso, pero tampoco se cuelga.

1

Tuve el mismo problema con "La posición de CALayer contiene NaN:". La aplicación estaba bien en dispositivos iOS3.xy iOS4.1, pero se bloqueó en iOS4.2.

En mi caso, tiene el siguiente código:

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

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

La creación UILabel falló y muestra que el error. En mi caso, se resolvió añadiendo valores arbitrarios para frame.origin (para este propósito UILabel, no importaba)

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]; 

Tal vez el problema con "posición CALayer contiene NaN" es debido a que algunos nula, incompleta o Se está utilizando un valor o estructura indefinido.