0

I am trying to retrieve a value from a NSUserDefaults. When I retrieve the value I get a (null), which is fine.

How can I validate it ?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Value"] !=[NSNull null] ) {
   NSlog(@"returns a value");
} else NSlog(@"return a null");

However, even though I get a null it doesn't get detected (It goes in to the if block). How can i sort this?

Illep
  • 16,375
  • 46
  • 171
  • 302

2 Answers2

2

nil is not the same as [NSNull null]. Just check with value != nil.

nil is (simplified) 0. [NSNull null] is a real object.

Eiko
  • 25,601
  • 15
  • 56
  • 71
1
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 if ([defaults objectForKey:@"Value"] != nil) {
     NSlog(@"returns a value");
 } else {
    NSlog(@"return a nil");
 }

This will work. And what Eiko said is right.

Mihado
  • 1,487
  • 3
  • 17
  • 30