如何将这个NSDictionary数据保存到plist并进行检索?

时间:2012-05-26 12:52:15

标签: iphone arrays uitableview plist nsdictionary

我有这个数据,我想保存到plist。 MONTH和DAY是系统日期整数。我知道如何得到它们。

 MONTH
  DAY
   int, string, int

示例:

 5
  25
   10, text, 50

我有一个UITableView,我必须以这种方式导入数据:

如果系统月份为3,则在plist中搜索键3,并仅在每月的几天填充表格。

最佳方法是什么?

修改

这一年并不重要。在表格中,它应该是月份列表,按下时应列出与特定月份相关的所有日期。并且每天都应该拥有与特定日期相关的所有数据。

我对如何在plist中构建数据感到困惑。

2 个答案:

答案 0 :(得分:0)

NSDate是需要开发人员干预将目标(或代码)存档到plist文件中的Objective C对象之一。

你的问题仍然是如此广泛,我不能100%确定你的具体案例中最好的方法。你想在一个单元格中显示“2012”,然后在下面的缩进单元格中显示“5”吗?在这种情况下,您可能希望将plist中的日期加载到具有NSDate属性的自定义对象中。或者,您可能希望将单独的“年”和“月”值与单个对象关联,该对象具有与其一起列出的多个表视图单元格。或者,您可能希望将所有这些列出到每个日期的单个自定义表格视图单元格中。

查看StackOverflow(like this one)上描述如何保存&的其他问题。加载NSDate个对象,然后考虑如何在UITableViewController中使用它。

答案 1 :(得分:0)

看起来这个帖子有关于将NSDictionary保存为plist的一些很好的信息:

Save NSDictionary to plist

至于在表格视图中显示结果,我对你如何组织你的NSDictionary感到有点困惑。一般来说,你应该这样做:

NSArray *arrayDataForMonthZero = [[NSArray alloc] initWithObjects:@"Your",@"Objects",@"For",@"Section",@"Zero"];
NSArray *arrayDataForMonthOne = [[NSArray alloc] initWithObjects:@"Your",@"Objects",@"For",@"Section",@"One"];
...
NSArray *arrayDataForMonthEleven = [[NSArray alloc] initWithObjects:@"Your",@"Objects",@"For",@"Section",@"Eleven"];

NSDictionary *tableData = [[NSDictionary alloc] initWithObjectsAndKeys:arrayDataForMonthZero,@"0",arrayDataForMonthOne,@"1",...,arrayDataForMonthEleven,@"11"];

然后,创建一个指向要使用的数据集的NSArray指针。因此,如果要显示第三部分,请执行以下操作:

NSArray *tableDataPtr = [tableData objectAtIndex:@"3"];

这将选择您刚刚创建的与第三个月相关联的所有数据。在向表视图委托和数据源提供命令时使用此对象。