I am storing an NSDate in a plist as a string, and at launch I am trying to convert the string from the plist back to an NSDate to compare it later.
You are overcomplicating things. What makes you think that storing a NSDate object you'll get back a NSString?
Just do
NSDate * checkDate = [InfoDic objectForKey:@"LastDate"];
Also, don't confuse KVC methods with NSDictionary methods.
You want to use setObject:forKey: instead of setValue:forKey if you don't want to face bad surprises.