如何在Cocoa中创建一个大型决策树

时间:2012-01-20 14:41:09

标签: xcode cocoa decision-tree

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

  • 机柜
    • 木制
      • 黑色
        • 光泽
        • 没有光泽
    • 布朗
  • 织物

任何人都可以建议使用某种变量类型吗? 我已经考虑使用NSMutableArray并用指向其他数组的指针填充它,但我想我最终会得到一大堆指针,其中最后实际上只有NSStrings返回(如果这有意义的话)。

1 个答案:

答案 0 :(得分:1)

我的建议是使用钳子让你的生活更轻松。可以轻松地将plists读入NSDictionaryNSArray个对象;如果需要,您还可以轻松地将NSArrayNSDictionary保留在plists中。如果plist内容是支持NSCoding协议的类型(对于示例数据来说似乎是这种情况),则会出现这种情况。

您的主要优势在于您可以使用Xcode plist编辑器创建plist文件(这只是一个XML文件),然后将其读入内存并以Obj-C对象的形式访问其内容,而无需担心自己创建所有NSArrays来保存指针。

  

我已经考虑过使用NSMutableArray并使用指向其他数组的指针填充它,但我想我最终会得到一大堆指针,最后只返回实际返回的NSStrings(如果这样做的话)义)...

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

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