Swift - 在目录中的索引处检索

时间:2014-07-17 00:47:07

标签: swift

在Swift中,是否可以使用索引检索/删除字典中的元素,而不是键值?在这个例子中,我试图创建一个“待办事项”列表,我最终可以访问分配给个人的所有任务。但我还想通过索引删除一个元素(任务)。

在下面的代码中,如何通过索引不使用键值删除第二个任务“洗碗”。我希望用这样的函数来调用这个函数:taskMgr.removeTaskByIndex(1)

任何其他解释或建议都很有帮助,因为我只是在学习Swift。

import Foundation

class TaskManager{

    var taskDictArray = Dictionary<String, String>()

    init(){
        taskDictArray = [:]
    }

    func addTask(task: String, person: String){
        taskDictArray[task] = person
    }

}

var taskMgr = TaskManager()

taskMgr.addTask("take out trash", person: "emma")
taskMgr.addTask("wash dishes", person: "jack")
taskMgr.addTask("clean floor", person: "cleo")

//taskMgr.removeTaskByIndex(1)
//var a = taskMgr.getTaskByIndex(1)

1 个答案:

答案 0 :(得分:2)

字典不维护其对象顺序,获取值的唯一方法是使用其键。您可能希望将具有索引的任何任务列表与其对应的键相关联,并使用该操作来操作字典。这是唯一的方法。如果不可能,您可能会考虑重构应用程序逻辑。

您需要添加

等功能
func removeTask(task: String) {
     taskDictArray[task] = nil
}

因此找到一种方法来获取与之关联的实际任务字符串。