2012-03-27 62 views
1

有时我需要做一个UITableView类似于一个菜单,并具有编译前已知的行。我通常这样做:这是滥用或滥用typedef枚举(与静态内容一起使用UITableView)

typedef enum { 
    PEPSI_SODA, 
    COKE_SODA, 
    DRPEPPER_SODA, 
    DIET_SODA, 
    COUNT_SODA 
} SODAS; 

我再回到COUNT_SODAnumberOfRowsInSection并为cellForRowAtIndexPath方法switch (indexPath.row) { case PEPSI_SODA: cell.textLabel.text = @"Pepsi" break; }。这是“正确”使用typedef enum还是有更好的方法来处理这些类型的情况?

回答

1

创建一些类型的UITableViewController子类,您可以在构造函数上传递字典。这样你就可以在你的项目中重复使用同一个类。你的方法是不可重用的,并且产生了很多努力来扩展,因为你必须在各个地方改变东西来添加一行。

+0

这两个答案都很好,但是这个比较清楚。谢谢! – 2012-03-27 20:15:00

2

它应该安全地工作。但是,我更喜欢使用字典,在那里你可以将数据绑定在一起,你会更加困难。