【问题标题】:swift - display items in table view by category / tag?swift - 按类别/标签在表格视图中显示项目?
【发布时间】:2015-11-27 01:07:33
【问题描述】:

我正在构建一个 swift 应用程序,需要一些帮助来解决两个问题。总的来说,我对 swift 和编码还很陌生。我的应用程序将一堆项目保存到一个数组中,当前主屏幕上的 tableview 显示它们。但我想更进一步,希望能够对项目进行分类。例如,购物清单。您可以将“bananas”、“pasta”、“apples”、“bread”、“strawberries”和“Milk”作为项目保存到数组中。

  1. 如何将标签关联到每个项目?比如说,将香蕉、苹果和草莓标记为“水果”并将该项目保存到数组中。

  1. 如何在表格视图中只显示带有“fruit”标签的项目?假设主屏幕是所有项目的列表,但您选择标签,然后它只显示带有“水果”标签的项目......等等。

这只是一个简单的例子来帮助说明我的观点,但我想知道如何处理这样的数据。

如果有人有任何想法或任何资源可以为我指明正确的方向,我将不胜感激。

谢谢!

【问题讨论】:

  • 从我的脑海中,我会说每个项目都应该是某种结构,具有名称(字符串)和 itemType(枚举)。然后你可以过滤 itemType 上的数组。
  • 感谢@nickfalk。这给了我足够的信息来进一步挖掘。我发现这个参考资料我认为可以帮助进一步解释它。它不是对食物进行分类,而是对接触进行分类,但原理是一样的。感谢您的帮助!

标签: ios arrays swift uitableview categories


【解决方案1】:
  1. 要在 Swift(以及几乎所有编程语言)中将某些事物与另一个事物相关联,您应该使用 Dictionaries。如何在您的情况下实施它?嗯,很简单。首先,我建议您创建enum 来存储您的食物类型或其他:

    enum FoodType {
        case Fruits, Vegetables
    }
    

    现在,创建您的食物存储库,用于存储食物(或value)并将其与某个标签(或key)相关联:

    var myFood = [FoodType : [String]]()  
    

    现在您可以像这样将食物添加到您的 myFood 变量中:

    food[.Fruits] = ["Bananas", "Apples", "Strawberries"]
    food[.Vegetables] = ["Potato", "Carrot"]
    
  2. 要选择水果,请执行以下操作:

    var onlyFruits = food[.Fruits]
    

    现在,onlyFruits 仅包含带有 .Fruits 标记的食物。

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多