处理硬编码列表/选项/下拉列表等的合法方式

时间:2016-05-04 13:08:41

标签: ios objective-c enums

在我工作期间多次使用不同类型的UI列表,如菜单或下拉列表。

我最近的项目示例:我有2个按钮,每个按钮都显示一个带有3个硬编码选项的弹出窗口,比如A,B和C.每个选项都有它自己的翻译和对应用程序的影响。

很多时候我有一个问题,如何巧妙地处理它。在Java中,我们可以通过带有字符串的枚举来实现。

如何在objective-c中的一个地方处理它?通过句柄我的意思是:

  • 存储选项列表
  • 将所有内容呈现在Popover中
  • 翻译他们
  • 识别(切换)选项

有很多可能性,如:

  • 只使用带密钥的NSDictionary - 但是我们必须写大 if-else语句通过键值标识选项
  • 我们可以将Enum和NSDictionaries / Array与键混合使用并使用switch语句但是列表中的每个更改都需要在枚举和数组/字典上进行更改。列表和枚举的顺序更重要。

在堆栈上,我们还可以找到多种方式来转换" /"转换"枚举到NSString,但这些解决方案似乎有点多余。

所以我的问题是 - 处理这些选项列表的最合法方式是什么?当然,我并没有询问有关Popover的完整实现;)只是数据句柄/存储部分。

1 个答案:

答案 0 :(得分:0)

就个人而言,我会在plist中有选项。然后将plist内容加载到NSDictionary中。虽然你无法轻松解决你所提出的问题,但你可以节省代码时间来实现这种方法 - 你可以更快更容易地编辑plist,你可以从NSDictionary获得一个'allKeys'数组并循环遍历它们等。