string value always shows nil in objective C

I have upgraded to Xcode 5.0. And when I run an app in debug mode and try to print an NSString value in console, it gives me the below error. Any ideas?

error: warning: couldn't get cmd pointer (substituting NULL): Couldn't load '_cmd' because its value couldn't be evaluated
Couldn't materialize struct: the variable 'stringValue' has no location, it may have been optimized out
Errored out in Execute, couldn't PrepareToExecuteJITExpression

Here is the code:

  • Google places web service: How to get next page of results in Swift 3
  • Alamofire 4.0 RequestRetrier should(_,retry,with,completion) not being called
  • A build only device cannot be used to run this target
  • How to compare UIColors?
  • How to create a circular progress indicator for a count down timer
  • How to have stored properties in Swift, the same way I had on Objective-C?
  • NSString *stringValue = [[self.responseArray objectAtIndex:i] valueForKey:@"merchant_name"]; 

    4 Solutions Collect From Internet About “string value always shows nil in objective C”

    The reason is stated in the error message: it may have been optimized out.. this means that you are compiling and running your code in an optimized manner.

    you gotta change your compiler optimization level from Fastest,Smallest to none:

    • go to your target build settings
    • search for optimization level
    • change it to none (whatever mode you are in ie debugging, distribution or release)

    do the same for your project settings

    Make sure you are in debug mode. Go Edit Scheme > Build Configuration > Debug

    You might be trying to debug in the “release Scheme”. Go to “Product/Scheme/Edit Scheme” and pick the “run” in the left panel. Then change the build configuration to “debug”.

    One alternate answer: instead of fixing “it may have been optimized out” by removing the optimization, you can stop it from being optimized by using the variable.

    So, in your question, if you do something with stringValue:

    NSString *stringValue = [[self.responseArray objectAtIndex:i] valueForKey:@"merchant_name"]; 
    NSLog(@"%@", stringValue);

    stringValue will no longer be optimized out because you’re using it.

    If you want to see all instances of optimized-out variables in your project, Use Product -> Analyze to analyze your project. Any “Dead store” warnings (in which a value is stored, and never read) will be optimized out at compile time if you have compiler optimization turned on.