Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 这是否滥用或误用了typedef枚举(与静态内容的UITableView一起使用)_Objective C_Ios_Enums_Struct_Typedef - Fatal编程技术网

Objective c 这是否滥用或误用了typedef枚举(与静态内容的UITableView一起使用)

Objective c 这是否滥用或误用了typedef枚举(与静态内容的UITableView一起使用),objective-c,ios,enums,struct,typedef,Objective C,Ios,Enums,Struct,Typedef,有时,我需要制作一个类似于菜单的UITableView,它的行在编译之前是已知的。我通常会这样做: typedef enum { PEPSI_SODA, COKE_SODA, DRPEPPER_SODA, DIET_SODA, COUNT_SODA } SODAS; 然后,我返回numberofrowsinssection的COUNT\u-SODA和开关(indexPath.row){case-PEPSI\u-SODA:cell.textlab.text

有时,我需要制作一个类似于菜单的
UITableView
,它的行在编译之前是已知的。我通常会这样做:

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

然后,我返回
numberofrowsinssection
COUNT\u-SODA
开关(indexPath.row){case-PEPSI\u-SODA:cell.textlab.text=@“PEPSI”break;}
方法。这是对
typedef enum
的“正确”使用,还是有更好的方法来处理这些类型的情况?

它应该安全工作。但是,我更喜欢使用字典,这样可以将数据绑定在一起,从而更加灵活。

创建某种类型的UITableViewController子类,您可以在构造函数上传递字典。这样,您就可以在项目中始终重用同一个类。您的方法是不可重用的,并且需要进行大量扩展,因为您必须在不同的位置更改内容以添加行。

两个答案都很好,但这一个更清楚一些。非常感谢。