我有一个对象数组。每个对象都有属性“date”和“title”。
我希望将带有UITableView
的分段填充为以下项目:
Section 1 - 2012.06.12 (taken from object.date)
Cell 1.1: Title 1 (taken from object.name)
Cell 1.2: Title 2
Cell 1.3: Title 3
...
Section 2 - 2012.06.13
Cell 2.1: Title 1
Cell 2.2: Title 2
..
Section 3 ..
我可以通过为所有date
组合手动创建 1..n NSMutableArrays并使用object.name
值填充它们来实现这一点。但问题是我不知道有多少date
组合,所以应该动态完成。此外,date
属性可以在不同的对象中重复
我的对象结构是:
Object
-NSDate - date
-NSString - title
UPD :
我在想是否可以创建NSDictionary,其中键将是我的日期,对象将是NSArray,其中包含关键日期的所有项目。但我不知道如何动态地做到这一点。
我希望我能够清楚地解释我的问题。 提前谢谢!
答案 0 :(得分:2)
您可以根据日期创建数组。您有对象数组,因此遍历此对象数组以获取不同的日期,如下所示:
for(int i =0;i<[objectsArr count];i++)
{
if(![newDateArr containsObject:[objectsArr objectAtIndex:i].date])
{
[newDateArr addObject:[objectsArr objectAtIndex:i].date];
}
NSMutableArray *newTitleArray = [newTitleDictionary objectForKey:@"[objectsArr objectAtIndex:i].date"];
if(newTitleArray != nil)
{
[newTitleArray addObject:[objectsArr objectAtIndex:i].title];
}
else
{
newTitleArray = [[[NSMutableArray alloc] init] autorelease];
[newTitleArray addObject:[objectsArr objectAtIndex:i].title];
}
[newTitleDictionary setValue:newTitleArray forKey:@"[objectsArr objectAtIndex:i].date"];
}
其中newTitleDictionary和newDateArr在此方法之外声明。现在可以同时使用newTitleDictionary和newDateArr来填充tableview。
答案 1 :(得分:0)
如果我理解正确,你想把一个对象放到一个数组中然后用那个数组来填充一个表视图?
每次只需将日期对象添加到NSMutableArray。
[myArray addObject:dateObject];
然后说到填充表视图..
DateObject *newDateObj = [myArray objectAtIndex:index];
我希望这有帮助,我理解你的问题
编辑现在回答我的理解了。
第1步 检查现有的日期数组,看看是否有任何匹配可能是通过使用for循环迭代它。在线搜索如何比较NSDate。
第2步如果不匹配任何内容,则将其作为数组插入到数组中,只有该日期,因此数组计数将为1。如果 匹配,则将其与该数组一起插入数组,使数组计数为2或更多。
第3步当声明表的节数时,只返回dateHolderArray计数。
第4步在声明每个部分中的行数时,返回dateHolderArray中数组的数组计数。
第5步在使用信息填充单元格时显示内容。它只是使用部分ID和行ID从数组中获取日期的任务。
我就是这样做的,可能还有很多其他的方法。任何问题只是问