我有一个.h文件用于定义我的所有enum
列表,我现在想使用其中一个列表来填充我在{{1}中创建的UITableView
} .class。但是我不确定如何将UITableViewController
列表读入enum
类?
这就是我的UITableViewController
列表。
enum
我想在// NameNum
typedef enum {John = 0, Jerry = 1, Jack = 2, Jeff = 3, Jonny = 4} Namenum;
中显示名称。
更新 我使用枚举的原因是因为当选择UITableView中的名称时,我需要在请求中将数字对应的号码发送到我正在进行的服务器调用。
答案 0 :(得分:2)
实际上......我有一个不同的方法来实现它。您可以直接使用字典而不是枚举。这就是你如何做到的
在你.h你可以这样做..
#define getDictionaryarray() @[ \
@{ \
@"Name": @"John", \
@"ID":@"0" \
}, \
@{ \
@"Name": @"Jerry", \
@"ID":@"1" \
}, \
@{ \
@"Name": @"Jack", \
@"ID":@"2" \
}, \
@{ \
@"Name": @"Jeff", \
@"ID":@"3" \
}, \
@{ \
@"Name": @"Jonny", \
@"ID":@"4" \
}, \
];
然后表视图数据源方法遵循
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSArray *array = getDictionaryarray();
return array.count;
}
并在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSArray *dictionaryarray = getDictionaryarray();
cell.textLabel.text = [[dictionaryarray objectAtIndex:indexPath.row] valueForKey:@"Name"];
这会给你一些优点,比如id不需要是0,1,2,3,它可以是任何数字。您可以向字典中添加更多属性,例如姓氏等。最重要的是,它可以做您想做的事情:)
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *array = getDictionaryarray();
NSLog(@"Id for selected Name %@ is %@",[[array objectAtIndex:indexPath.row] valueForKey:@"Name"],[[array objectAtIndex:indexPath.row] valueForKey:@"ID"]);
}
希望这会有所帮助......
答案 1 :(得分:0)
我会以面向对象的方式处理它并定义类方法以提供您需要的函数 -
+(NSString *) stringForName:(Namenum)name
{
NSString *ret;
switch (name)
{
case Jack:
ret=@"Jack";
break;
case Jonny:
ret=@"Johnny";
break;
...
}
return ret;
}