我正在将数据从sql加载到NSMutableArray中,让我们说一个高度和重量条目表,每个都有一个timeStamp(NSDate)
所以用户输入身高和体重!
我调用条目来获取按timeStamp排序的所有数据,即最新的数据是第一个。
这是我得到的订单,
- 高度 - 2012年1月30日 - 重量 - 2012年1月30日
- 高度 - 2011年12月30日 - 重量 - 2011年12月30日
-Height - Novem 2011 -Weight - Novem 2011
所以我的mutableArray中有6个对象。
在tableView数据源中,我只想要3行。每个都有ht / wt。
的组合那么我的函数将在cellforRow / numberOfRows /中再次在didSelectRow中检索这些组合。
2 - 另外,在上面的例子中,每一行有2个对象,如果还有另外一种情况需要3个对象怎么办? 例如,收缩压/舒张压/脉压全部由用户输入并按有序时间戳检索, 在这种情况下,每行将代表3个对象,3行总共有9个。
在我调用条目之前,每行中表示的对象数量是预先定义的,所以我知道每个单元格将拥有的对象数量......只是不知道如何去做.. < / p>
感谢您的帮助!
[编辑:]我将清理一件事,即条目表 - 有自己的Entryobject类 每个班级都有 - -值 -Timestamp -CategoryID
我不希望为高度/重量定义对象的原因是: - 高度和重量不会在一行中返回..它取决于类别的组合,例如BodyMassIndex类别将返回如上所述的2个条目的组合,所以id必须再次在这里计算,...这违背了目的对象本身。
这种方式可以让应用程序在未来更具可扩展性!虽然它让我失望!
嗯,用mAtH得到了一个解决方案!!这会在记忆中超级昂贵吗?fieldCount是属性的数量。 ht和wt = 2!
limiterIndex=indexPath.row * fieldCount;
NSMutableArray *returnArray = [NSMutableArray new];
for(int i=limiterIndex; i<(limiterIndex+fieldCount); i++){
[returnArray addObject:[entriesArray objectAtIndex:i];
}
[cell setDataFromArray:returnArray];
[returnArray release];
我不确定这会有效,但它似乎确实从一个条目数组中得到每个单元格的条目!至少在纸上!
看起来似乎是一种昂贵的方式吗?
答案 0 :(得分:0)
您应该创建一个自定义对象,以保存单个单元格中所需的每个数据。然后将它们放在一个数组中,并将其用作数据源。
在你的情况下,将宽度和高度数据放在一些myObject中。然后将这些myObjects放在myObjectsArray中,并将其用作数据源。
然后在你的单元格中提取myObject并从高度和宽度中提取。
这可以用来填充cellForRowAtIndexPath中的单元格:
这可以用于heightForRowAtIndexpath中的单元格尺寸:
当然,您也可以为其他数据执行此操作。只需创建一个包含表格数据的自定义对象。
简而言之,我建议制作这些自定义对象并将其用作tableView的数据源。 你会搞清楚的。 祝你好运。
答案 1 :(得分:0)
我会创建一个模型对象来检索所有条目的主数组。
此模型对象还具有基于传递的索引返回正确数据的方法。
weightString = (NSString*)[self.dataModel getWeightAtIndex:indexPath.row];
然后,我会根据需要通过向单元格添加文本/字段视图来动态创建单元格。
编辑:
如果你想要一个方法可以改变它返回的方法创建一个像:
weightString = (NSString*)[self.dataModel getDataAtIndex:indexPath.row forDataType:@"weight"];