我有NSDictionary
这样的日期:
" 2015-05-23 21:04:11 + 0000"
我尝试解析它:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *date = [dateFormat dateFromString:[item valueForKey:@"enddata"]];
我也尝试将最后一行更改为:
NSDate *date = [dateFormat dateFromString:[[item valueForKey:@"enddata"] stringValue]];
但我的错误总是一样的:
[__ NSDate length]:无法识别的选择器发送到实例0x78ec0170
我看过this,this,this和many more等帖子。我尝试过不同的格式,例如:
但仍然获得相同的SIGABRT
有没有人知道什么是错的?
答案 0 :(得分:2)
我猜测item[@"enddata"]
已经是NSDate
对象,而不是NSString
对象。
验证:
NSLog(@"enddata is type %@", NSStringFromClass([item[@"enddata"] class]));
也不要使用valueForKey:
,而是使用objectForKey:
或我上面使用的新访问语法。
答案 1 :(得分:0)
此
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *date = [dateFormat dateFromString:@"2015-05-23 21:04:11 +0000"];
NSLog(@"date: %@", [dateFormat stringFromDate:date]);
对我来说很好。
NSLog
是你的朋友。也许您应该NSLog
item
的值,或
[item valueForKey:@"enddata"]
甚至
[[item valueForKey:@"enddata"] stringValue]
因为如果后者是所需格式的NSString
,那么使用它调用dateFromString
应该可以正常工作。