objective-c - 解析日期字符串给出 [__NSDate length] 无法识别的选择器异常

标签 objective-c cocoa cocoa-touch nsdate nsdateformatter

我有一个NSDictionary包含这样的日期:

"2015-05-23 21:04:11 +0000"

enter image description here

我试图像这样解析它:

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]: unrecognized selector sent to instance 0x78ec0170

我看过类似 this 的帖子,或this ,或this ,和many more 。我尝试过不同的格式,例如:

  1. @"yyyy-MM-dd HH:mm:ss z"
  2. @"yyyy-MM-dd HH:mm:ss zzzz"
  3. @“yyyy-MM-dd HH:mm:ss Z”
  4. @“yyyy-MM-dd HH:mm:ss +zzzz”
  5. @"yyyy-MM-dd HH:mm:ss z"
  6. @"yyyy-MM-dd'T'HH:mm:ss'Z'"
  7. @"yyyy-MM-dd hh:mm:ss a"
  8. @“yyyy-MM-dd HH:mm:ss a”
  9. @"yyyy-MM-dd HH:mm:ss zzz"
  10. @"yyyy-MM-dd hh:mm:ss zzzz"

但仍然得到相同的SIGABRT

有谁知道出了什么问题吗?

最佳答案

我大胆猜测 item[@"enddata"] 已经是一个 NSDate 对象,而不是 NSString 对象。

验证:

NSLog(@"enddata is type %@", NSStringFromClass([item[@"enddata"] class]));

也不要使用 valueForKey:,而是使用 objectForKey: 或我上面使用的新访问语法。

关于objective-c - 解析日期字符串给出 [__NSDate length] 无法识别的选择器异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442796/

相关文章:

iphone - 是removeFromSuperview释放了对象吗?

ios - AF网络2.0 : AFHTTPRequestOperationManager asynchronous methode invoke

c# - 使用 protobuf 将类型 System.Drawing.Rectangle 从 .Net 序列化为 C++

objective-c - 如何使用 kCGImagePropertyGIFImageColorMap 或创建颜色表?

macos - Mac OS X 10.8 中纹理窗口的奇怪窗口背景

iphone - 设置 NavigationItem 的 alpha 值

iphone - Cocoa Touch : What to release, 什么时候发布?

ios - 如何根据 UIScrollview 内的按钮框架大小水平滚动 UIScrollView

iphone - 快速枚举中的突变?

Objective-C,改变 NSButton 功能?