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

标签 ios objective-c enums

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

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

很多时候我都遇到了如何巧妙处理的问题。在 Java 中,我们可以使用字符串枚举枚举。

如何在 objective-c 的一个地方处理它?我所说的句柄是指:

  • 存储选项列表
  • 在 Popover 中展示它们
  • 翻译它们
  • 识别(切换)选项

有很多可能性,例如:

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

在堆栈上,我们还可以找到多种方法将枚举“翻译”/“转换”为 NSString,但这些解决方案似乎有点多余。

所以我的问题是 - 处理此类选项列表的最合法方法是什么?当然,我不是在询问 Popover 的完整实现;)只是数据处理/存储部分。

最佳答案

就我个人而言,我会在 plist 中提供选项。然后将 plist 内容加载到 NSDictionary 中。虽然您无法轻松解决您概述的问题,但您可以通过这种方法节省代码时间 - 您可以更快更轻松地编辑 plist,您可以从 NSDictionary 获取“allKeys”数组并循环遍历它们,等等。

关于ios - 处理硬编码列表/选项/下拉列表等的合法方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37028774/

相关文章:

java - 存储常量的最佳方式,无论是枚举还是数据库表,都要牢记国际化

ios - SceneKit 自定义几何

ios - 未上传开发 APNs 证书

ios - Firebase 临时封禁帐号

ios - 如何在文本字段中找到 UITextInput 创建的字符串(或长度)? ( swift )

objective-c - 何时何地从任意消息返回值初始化外部变量?

ios - If/Else TextView Action iOS

objective-c - 应用程序中的多个窗口或 "pages"

c - 为什么这些常量以不同的方式声明?

c# - 如何从 [Flag] 枚举属性中检索值?