【问题标题】:Plist to NSDictionaryPlist 到 NSDictionary
【发布时间】:2012-08-19 12:24:50
【问题描述】:

我有一些 plist 数据,如下图所示:

如果在我的UIDatePicker 上选择了等于 CDate 的 NSDate,我如何访问“文本”值?

【问题讨论】:

  • "如果选择了 CDate,我如何提取我的文本?" 1. 问题是什么? 2. 这一切与 Xcode 和 NSDictionary 有什么关系?
  • 友善,专家。我只是初学者。我的意思是如果我选择 CDate 只是说 2012-08-19 然后文本“欢迎使用 PlainNote:您可以使用简单的标准快速 iPhone 界面添加注释和删除注释。您也可以使用左下角的按钮将注释发送到电子邮件地址。”出现在我的标签中。
  • 我明白了,但是“选择”它是什么意思?在 Xcode 的编辑器中?
  • 对不起,我的解释不完整。我将我的 plist 填充到 pickerview 中。使用上面的 plist,只有 2 行,对吗?只需说如果我选择 2012-08-19 的日期并且属于该日期的文本将显示在标签上。我希望你能理解,因为英语不是我的母语。谢谢。
  • 为什么这个问题被否决了?

标签: ios cocoa-touch plist nsdate uidatepicker


【解决方案1】:

所以你基本上想要

NSString* path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"];
NSArray* a = [NSArray arrayWithContentsOfFile:path]; 
for (NSDictionary *d in a)
{
    NSString *cdate = [d objectForKey:@"CDate"];
    if ([cdate isEqualToString:@"Whatever is currently selected"])
    {
        NSString *text = [d objectForKey:@"Text"];
        // do something with text here
    }
}

【讨论】:

  • 您好,感谢您的帮助。你的方法是对的,但这里有一些问题。我把 NSLog 放在 NSArray *array = [NSArray arrayWithContentsOfFile:@"file.plist"];它说空。你能告诉我发生了什么吗?
  • @SyntaxError 这不是你读取文件的方式。使用这个: NSString* path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"plist"]; NSArray* 数组 = [NSArray arrayWithContentsOfFile:path];
  • 谢谢 Mazyod,它现在可以工作了。我从这个案例中学到了很多。自学很难。
【解决方案2】:

偶然发现这个并认为应该更新

NSDictionary *initialDefaults = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]];

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多