Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 分析日期字符串会导致[\uu\NSDate length]无法识别的选择器异常_Objective C_Cocoa_Cocoa Touch_Nsdate_Nsdateformatter - Fatal编程技术网

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的无法识别的选择器

我见过像,或,或,和这样的帖子。我尝试过不同的格式,例如:

  • @“yyyy-MM-dd HH:MM:ss z”
  • @“yyyy MM dd HH:MM:ss zzzz”
  • @“yyyy-MM-dd HH:MM:ss Z”
  • @“yyyy-MM-dd HH:MM:ss+zzzz”
  • @“yyyy-MM-dd HH:MM:ss z”
  • @“yyyy-MM-dd'HH:MM:ss'Z'”
  • @“yyyy MM dd hh:MM:ss a”
  • @“yyyy MM dd HH:MM:ss a”
  • @“yyyy MM dd HH:MM:ss zzz”
  • @“yyyy MM dd hh:MM:ss zzzz”
  • 但是仍然得到相同的
    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如此熟悉,以至于我真的不知道我能从字典中提取如此“困难”的对象。。。。非常感谢你!!