Question

After running these two lines in Xcode 4.6.3, both x and y are marked as (null) with grey text in the debugger’s Variables View pane.

  NSNumber* y = [NSNumber numberWithBool:YES];
  NSNumber* z = [NSNumber numberWithBool:NO];

Ditto for:

  NSNumber* literalYes = @YES;
  NSNumber* literalNo = @NO;

Yet if I context-click on those items in the Variables View pane, and from the context menu choose Print Description, I do see the correct 1 or 0 value.

Why does the debugger’s Variables View pane report these objects as null when they are not?

Was it helpful?

Solution

Xcode 4 debugger lies. (See comment above by Herrman Klecker)

Ignore the grey color text "(null)".

Look at this question, Xcode debugging: View value of NSNumber?, for tips on displaying actual values.

One way… Set breakpoint after your code, click into the debugger Console View, and use the Print Object command by typing po y. Press Return/Enter to execute the expression and see resulting value in the console. The commands p and po work in both the older gdb and newer lldb debugger technologies. See Debugging tips for Objective-C programming for examples.

Another way… Open the Debugger view and in the Summary column enter something like: {(int)[$VAR intValue]}

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top