2012-05-26 25 views
0

我有这个数据,我想保存到plist。 MONTH和DAY是系统日期整数。我知道如何得到它们。如何将此NSDictionary数据保存为plist,然后进行检索?

MONTH 
    DAY 
    int, string, int 

例子:

5 
    25 
    10, text, 50 

我有一个UITableView中,我必须导入在这样的数据:

如果系统月份是3,搜索plist中的关键3用第3个月的日子填充表格。

对此,最佳方法是什么?

编辑

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

我很困惑如何在plist中构造数据。

回答

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"]; 

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

+0

我编辑了这个问题。 – maxus182

+0

你应该能够看看我的例子并从那里推断结构。你会嵌套多个NSDictionaries。第一个会有与月份匹配的密钥。这将返回一个NSDictionary和键匹配的天数。最后,这将返回您想要与特定月份和日期相关联的数据。 –

0

NSDate是那些需要开发人员干预将其归档(或编码)到plist文件中的Objective C对象之一。

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

看看StackOverflow上(like this one),描述了如何保存&负载NSDate对象,然后考虑如何利用这在您的UITableViewController其他问题。

+0

我编辑了这个问题。 – maxus182