indexNumber.row
is a date like 2012-03-09 23:00:00 +0000
. I've tried a handful of different ways to get my date into an NSDate
, but I keep getting the title error.
NSString *inputString = [self.measurements objectAtIndex:indexNumber.row];
// Convert string to date object
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:inputString ];
NSLog(@"date format is: %@", date);
Any ideas why I get the following error:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDate length]: unrecognized selector sent to instance 0x6ca0c60'
Either do as sch suggests, or if you don't need the time at all, you can just truncate the string you feed to your dateFormatter. E.g. like so:
Where 9 is an index, up to which you want to take a chunk of string.
You get that error because you are passing a
NSDate
object todateFromString:
.Add an
NSLog
and you will see that:Also, here is how to reproduce your error:
That means that the array
self.measurements
containsNSDate
objects and notNSString
objects.When you correct your current problem, you will probably encounter a new one because you don't use the correct date format. To parse date strings of type:
2012-03-09 23:00:00 +0000
you should use the following date format: