2010-10-17 15 views
6

vedo questo registro nella console quando eseguo il mio app:posizione CALayer contiene NaN: [nan -0.5]

CALayer position contains NaN: [nan -0.5] 

L'applicazione è costituita da una UITaBar di cui la prima scheda è un UINavigationController. Nel NavController sto lanciando il AddressBookPicker. Nel AddressBookPicker sto solo scegliendo di mostrare i numeri di telefono.

Quando scelgo un contatto che ha solo indirizzi email, è quando vedo questo registro.

Non vedo arresti anomali o problemi relativi, solo il registro stampato sulla console. Voglio assicurarmi che questo non sia un problema nascosto che si arresta su di me dopo il lancio.

Di seguito è riportato uno snippet del codice rilevante e dello stacktrace. Non sono sicuro di quali parti del codice incollare qui, per favore fatemi sapere se ci sono post che posso aiutare.

Qualsiasi aiuto/input apprezzato.

Grazie!

Codice

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

Ciao danny, hai mai trovato la soluzione a questo problema? Ricevo lo stesso messaggio di errore, il tutto con un valore nan diverso (?). Qualche vantaggio su cosa l'ha causato? – epologee

risposta

0
  1. Non lo so.

  2. vedo anche questo - una cosa che sto facendo completamente diverso da te - Sto usando il motore di percorso-me mappatura per visualizzare mappe scorrevoli.

ho credere che abbia qualcosa a che fare con scrolling viste - e uno strato in qualche modo coinvolto nel scorrimento. Come alcuni dei punti di vista che hai citato, credo che stiano scorrendo - questo concorderebbe con le mie osservazioni.

Vorrei avere più dati per voi, ma una cosa che posso dirvi è che ho lavorato sulla app per mesi, e hanno testato su iPhone e iPad, i dispositivi e il simulatore , sotto i sistemi operativi 3.2 e 4.0 - e non hanno avuto arresti anomali o perdite di memoria [del tutto o associati a questo].

Quindi in breve - non ne ho idea - ma penso che tu stia bene!

+0

Buono a sapersi, non causa problemi. Non ho nemmeno ricevuto una risposta per questo sulla community degli sviluppatori. – dagnytaggart

1

Questo sembra ora causare arresti anomali in iOS 4.2. Prova a scegliere un contatto senza numero di telefono, dovresti andare a una vista che dice No numeri di telefono. L'arresto anomalo si verifica quando si torna a Tutti i contatti, quindi si seleziona nuovamente quel contatto.

Qualcun altro ha riscontrato questo problema?

modifica: nel mio caso, sto solo visualizzando gli indirizzi email. Scegliere un contatto senza un indirizzo email due volte provoca l'arresto anomalo.

+0

Lo stesso problema per me. – Andrei

1

Ho lo stesso problema, anche se non sembra accadere nelle app integrate (ad esempio la posta).

Una soluzione leggermente innovativa consiste nell'aggiungere il nome Primo e Ultimo nell'elenco delle proprietà visualizzate, in questo caso non mostra il livello "nessun indirizzo di posta elettronica", ma non si arresta in modo anomalo.

1

Ho avuto lo stesso problema con "Posizione CALayer contiene NaN:". L'app andava bene nei dispositivi iOS3.x e iOS4.1, ma si è bloccata in iOS4.2.

Nel mio caso, mi ha il seguente codice:

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

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

La creazione UILabel fallito e dimostrato che l'errore. Nel mio caso, è stato risolto aggiungendo valori arbitrari per frame.origin (per questo scopo UILabel, non importa)

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

Forse il problema con la "posizione CALayer contiene nan" è perché alcuni nullo, incomplete o viene utilizzato un valore o una struttura indefiniti.