Objective c 分析日期字符串会导致[\uu\NSDate length]无法识别的选择器异常
我有一本Objective c 分析日期字符串会导致[\uu\NSDate length]无法识别的选择器异常,objective-c,cocoa,cocoa-touch,nsdate,nsdateformatter,Objective C,Cocoa,Cocoa Touch,Nsdate,Nsdateformatter,我有一本NSDictionary,上面有这样一个日期: “2015-05-2321:04:11+0000” 我试着像这样解析它: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"]; NSDate *date = [dateFormat dateFromString:[item valueForKey:@"enddat
NSDictionary
,上面有这样一个日期:
“2015-05-2321: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]];
但我的错误总是一样的:
[\uu NSDate length]:发送到实例0x78ec0170的无法识别的选择器
我见过像,或,或,和这样的帖子。我尝试过不同的格式,例如:
SIGABRT
有人知道怎么回事吗?我猜
项[@“enddata”]
已经是NSDate
对象,而不是NSString
对象
核实:
NSLog(@"enddata is type %@", NSStringFromClass([item[@"enddata"] class]));
另外,不要使用valueForKey:
,而是使用objectForKey:
或我在上面使用的新的访问语法。
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 valueForKey:@"enddata"]
甚至
[[item valueForKey:@"enddata"] stringValue]
因为如果后者是所需格式的
NSString
,那么使用它调用dateFromString
应该可以正常工作。oh,me=dumb。。。我对Android如此熟悉,以至于我真的不知道我能从字典中提取如此“困难”的对象。。。。非常感谢你!!