我使用枚举填充UITableView。现在在运行时,在获取服务器数据后,我需要决定是否填充第一部分。因此,我需要删除第一个枚举(MyListSectionType1)条目以使其正常工作。
typedef enum {
MyListSectionType1,
MyListSectionType2,
MyListSectionType3,
MyListSectionType4,
MyListSectionType5,
MyListSectionType6,
MyListSectionType7,
MyListSectionTypeMax,
} MyListSectionType;
我想过尝试下面的代码但是如何在运行时定义showShow是另一个问题。我尝试在我获取服务器数据的类中定义它,但这不起作用。任何线索?
typedef enum {
#ifdef showShow
MyListSectionType1,
#endif
MyListSectionType2,
MyListSectionType3,
MyListSectionType4,
MyListSectionType5,
MyListSectionType6,
MyListSectionType7,
MyListSectionTypeMax,
} MyListSectionType;
答案 0 :(得分:2)
您无法在运行时执行此操作。此外,#ifdef
是预处理程序指令,它在编译期间处理。
您可以使用数组,并在运行时添加和删除项目。所以你会有像
NSMutableArray *arr = @[@"Section 1", @"Section 2", @"Section 3"];
如果您得到不需要第一部分的回复,那么您可以致电
[arr removeObjectAtIndex:0];
答案 1 :(得分:0)
确定。我已经通过将MyListSectionType1移动到枚举列表中的最后一个然后在 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
中有条件地返回MyListSectionTypeMax - 1来解决这个问题。