iphone - 如何以编程方式获取 NSDate plist 表示形式?

标签 iphone objective-c cocoa plist nsdate

由于plist是xml,也就是文本,所以当一个NSDate对象写入plist时,结果是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
      <date>2011-04-01T02:09:15Z</date>
</plist>

我想直接获取该字符串(011-04-01T02:09:15Z),而不需要所有周围环境。必须有一种比以下更明智的方法:

NSString *xmlRepresentationOfCurrentDate = [[[[[[[NSString alloc] initWithData:[NSPropertyListSerialization dataFromPropertyList:self format:kCFPropertyListXMLFormat_v1_0 options:0 error:NULL] encoding:NSUTF8StringEncoding] autorelease] componentsSeparatedByString:@"<date>"] objectAtIndex:1] componentsSeparatedByString:@"</date>"] objectAtIndex:0];

让事情变得复杂的是,上面的表示是 GMT,并且显然时区是在创建 NSDate 对象期间设置的。我看到的上述代码的替代方法是获取 GMT 偏移量,在 dateWithTimeInterval:sinceDate: 方法中使用它来获取 GMT 日期,然后使用 NSDateFormatter 来获取 GMT 日期。写出上面的字符串。然而,因为这会带来更多的开销。

有什么方法可以获取该 xml 字符串吗?

最佳答案

如果您确实要创建仅包含单个日期的属性列表,那么您发布的代码似乎是正确的方法。我可以理解您可能会觉得这有点麻烦,但您始终可以将其粘贴到 NSDate 上类别中的方法中,以便您可以直接从属性列表格式读取或写入日期。

关于iphone - 如何以编程方式获取 NSDate plist 表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508572/

相关文章:

ios - 不兼容的指针类型用类型为 'NSString *' 的表达式初始化 'UITextField *'

macos - 如何以编程方式检查 Mac 是否已连接到 Wi-Fi 网络?

swift - NSTableCellView View 中的 NSPopupButton 导致泄漏

iphone - iOS-在 View 中打开框架(其他 View )时出现问题

iphone - ViewController 屏幕在启动应用程序之前下载数据库

iphone - 如何查找facebook的friend_id列表?

iphone - 当 View 的类为 TPKeyboardAvoidingScrollView 时,UIButton 不会在模拟器上显示

ios - 如何将图像从 Parse 加载到 UIImageView (iOS)

objective-c - 如何计算 Objective-C 字符串(NSString)中的行数?

objective-c - 为什么 EXC_BAD_ACCESS 如此无用?