需要帮助为特定任务创建功能

时间:2014-12-07 09:36:54

标签: swift

所以我要创建一个应用程序,通过阅读您在应用程序中输入的成分来生成食谱。 例如,(我想使用数组来做这个)让我们说用户按下这些成分的按钮:[鸡蛋,面粉,糖,小苏打]

并且应用程序中有3个食谱:

< - > A - 需要鸡蛋,面粉,糖。     B - 需要鸡蛋,面粉。       C - 需要小苏打,番茄酱。

我想要创建的功能将选择食谱A和B,因为用户具有所需的成分,不像食谱C,他缺少酱汁。

我认为这样做的方法是比较配料清单和食谱清单,如果两者都有相同的食品或配方含有较少的配料,那么应用程序会显示配方。
我可以用什么功能来做这件事?

1 个答案:

答案 0 :(得分:2)

NSSet可以很好地为您服务。它有一个方法isSubsetOfSet,用于测试一个集合是否是另一个集合的子集。

let recipes:[String:NSSet] = ["A": NSSet(objects: "eggs", "flour", "sugar"), "B": NSSet(objects: "eggs", "flour"), "C": NSSet(objects: "baking soda", "tomato sauce")]

let ingredients = NSSet(objects: "eggs", "flour", "sugar", "baking soda")

for (name, recipe) in recipes {
    if recipe.isSubsetOfSet(ingredients) {
        println("you have the ingredients for recipe \(name)")
    }
}

如果您希望逐位构建ingredients设置,请使用NSMutableSet

var ingredients = NSMutableSet()
ingredients.addObject("flour")
ingredients.addObject("butter")