0

我正在开发一个 iOS 应用程序,我需要用户能够通过决策树选择某个报告的主题(使用UITableView来推进可用选项)。我正在尝试找到一种订购所有可用选项的好方法,其中一些层大约有 5 层和 10 多个项目。

  • 橱柜
    • 木制的
      • 黑色的
        • 闪亮的
        • 没有光泽
          • ETC
    • 棕色的
      • ETC
    • 白色的
      • ETC
    • ETC
  • 织物
    • ETC

任何人都可以建议使用某种变量类型来执行此操作吗?我曾考虑过使用 aNSMutableArray并用指向其他数组等的指针填充它,但我认为我最终会得到一大堆指针,但最终只有实际NSStrings返回(如果这有任何意义的话)。

4

1 回答 1

1

我的建议是使用 plist 让您的生活更轻松。Plists可以很容易地读入NSDictionaryNSArray对象;如果需要,您还可以坚持NSArray并轻松进入 plist。NSDictionary如果 plist 内容是支持NSCoding协议的类型(您的示例数据似乎就是这种情况),则这是正确的。

您的情况的主要优点是您可以使用 Xcode plist 编辑器创建您的 plist 文件(这只是一个 XML 文件),然后将其读入内存并作为 Obj-C 对象访问其内容,而不必担心必须自己创建所有的NSArrays持有指针。

我曾考虑过使用 NSMutableArray 并用指向其他数组等的指针填充它,但我想我最终会得到一大堆指针,其中只有最后实际上返回了 NSStrings(如果这有任何意义的话)。 ..

这是正确的,这是你可以走的路。如上所述,您可以手动构建阵列,或使用 plist 编辑器。

否则,您可以寻找一些专门的数据结构实现来表示决策树。还可以查看CHDataStructures,它是 Obj-C 中数据结构的集合。

于 2012-01-20T14:43:16.070 回答