converting string to NSDate issue: [__NSDate Length] unrecognized selected
You get that error because you are passing a NSDate
object to dateFromString:
.
Add an NSLog
and you will see that:
NSString *inputString = [self.measurements objectAtIndex:indexNumber.row];
if ([inputString isKindOfClass:[NSDate class]]) {
NSLog(@"inputString is of type NSDate");
}
Also, here is how to reproduce your error:
NSString *inputString = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date = [dateFormatter dateFromString:inputString];
That means that the array self.measurements
contains NSDate
objects and not NSString
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:
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zz"];
BamBamBeano
Updated on June 21, 2022Comments
-
BamBamBeano almost 2 years
indexNumber.row
is a date like2012-03-09 23:00:00 +0000
. I've tried a handful of different ways to get my date into anNSDate
, 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'
-
BamBamBeano about 12 yearsi've tried a few different setDateformats. I get the same error with the above format: "Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSDate length]: unrecognized selector sent to instance 0x6ca0c60'"
-
BamBamBeano about 12 yearsadded an NSLog after setting the string and get "date format is:2012-03-09 09:36:53 +0000"
-
sch about 12 yearsThat won't solve his problem. If the problem was the date formatting, he would get a
nil
date and not the error he mentioned. -
makaron about 12 yearsIf the problem is in the difference between date format and the format of given string - it will solve the problem. If the string is nil, then of course it won't give anything, as well as you suggestion.
-
BamBamBeano about 12 yearsnailed it. after running your if, it was in fact an NSDate and no conversion was necessary. thanks sch.