1

我有一个对象数组。每个对象都有属性“日期”和“标题”。我想填充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 ..

我可以通过为所有组合手动创建1..n NSMutableArrays并用值date填充它们来做到这一点。object.name但问题是我不知道有多少date组合,所以应该动态完成。此外,该date属性可以在不同的对象中重复我的对象结构是:

Object
 -NSDate - date
 -NSString - title

更新

我在想是否可以创建 NSDictionary,其中键是我的日期,对象是 NSArray,它包含我所有的关键日期项目。但我不知道如何动态地做到这一点。

我希望我足够清楚地解释了我的问题。先感谢您!

4

2 回答 2

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。

于 2012-06-13T11:12:14.300 回答
0

如果我理解正确,您想将一个对象放入一个数组中,然后使用该数组填充一个表格视图?

每次只需将日期对象添加到 NSMutableArray。

[myArray addObject:dateObject];

然后在填充表格视图时..

DateObject *newDateObj = [myArray objectAtIndex:index];

我希望这会有所帮助,我理解你的问题

编辑现在回答我明白了一点。

第 1 步 检查现有的日期数组,看看是否有任何匹配的可能通过使用 for 循环遍历它。在线搜索如何比较 NSDate。

第 2 步如果它匹配,则将其作为一个数组插入到数组中,该数组只有它自己的日期,因此数组计数将为 1。如果它确实匹配,则将它与使数组计数为 2 或更多的那个一起插入到数组中。

第 3 步在声明表的部分数量时,只需返回 dateHolderArray 计数。

第 4 步在声明每个部分中的行数时,返回 dateHolderArray 中的数组的数组计数。

第 5 步在使用信息填充单元格时显示内容。它只是使用节 id 和行 id 从数组中获取日期的任务。

我就是这样做的,可能还有很多其他方法。任何问题只要问

于 2012-06-13T10:54:57.260 回答