CALayer position contains NaN: [nan -0.5]

I see this log in the console when starting my application:

CALayer position contains NaN: [nan -0.5] 

The application consists of a UITaBar , of which the first tab is the UINavigationController . In NavController I run AddressBookPicker . In AddressBookPicker I select only phone numbers.

When I select a contact that has only email addresses, that is, when I see this log.

I do not see any glitches or any problems in this regard, just the log is printed on the console. Want to make sure that this is not a hidden problem that crashes after me after starting.

Below is a snippet of the corresponding code and stacktrace. Not sure which other parts of the code to insert here, please let me know if there are any posts that might help.

Any help / input is appreciated.

Thanks!

the 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 
+6
objective-c iphone ios4
source share
4 answers

This currently crashes in iOS 4.2. Try to select a contact without a phone number, you should go to the view, which contains phone numbers. An accident occurs when you return to all contacts, and then select that contact again.

Anyone else having this problem?

edit: In my case, I only show the email addresses. Selecting a contact without an email address will fail.

+1
source share

I have the same problem, although it does not appear in embedded applications (for example, in mail).

One small hacky workaround is to add the First Name and Last Name to the list of displayed properties - in this case it does not display the “no email address” layer, but also does not crash.

+1
source share

I had the same problem: "CALayer position contains NaN:". The app was good on iOS3.x and iOS4.1 devices, but a crash occurred on iOS4.2.

In my case, I have the following code:

 CGRect frame; frame.size.height = kTableCellHeight - 11; frame.size.width = widthCell - 30; UILabel *descriptionLabel = [[UILabel alloc] initWithFrame:frame]; 

Error creating UILabel and this error is indicated. In my case, it was decided to add arbitrary values ​​for frame.origin (for this purpose UILabel it did not matter)

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

Perhaps the problem with the “CALayer position contains NaN” is that some nil value is used, incomplete or undefined, or structure.

+1
source share
  • I dont know.

  • I also see this - I am doing something completely different from you - I use the route-me display mechanism to display scrollable maps.

I believe this has something to do with scrolling views - and the layer is somehow involved in scrolling. Since some of the views that you mentioned, I consider scrolling - this is consistent with my observations.

I would like to have more data for you, but one thing I can tell you is that I have been working on this application for several months and tested it on iPhone and iPad, devices and simulators under OSes 3.2 and 4.0 - and there were no memory crashes or leaks [in general or related].

So, in short - I do not know, but I think that you are fine!

0
source share

All Articles