2014-07-17 2 views
1

Swift에서는 키 값이 아닌 색인을 사용하여 사전에서 요소를 검색/제거 할 수 있습니까? 이 예에서는 개인에게 할당 된 모든 작업에 최종적으로 액세스 할 수있는 "할 일"목록을 만들려고합니다. 하지만 인덱스로 요소 (작업)를 제거하고 싶습니다.Swift - 디렉토리 내의 색인에서 검색

아래 코드에서 키 값을 사용하지 않는 색인으로 두 번째 작업 "설거지"를 제거 할 수 있습니까? 이 func를 다음과 같이 호출하고 싶습니다. 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) 

답변

2

사전은 객체 순서를 유지하지 않으며 값을 얻는 유일한 방법은 키를 사용하는 것입니다. 아마도 인덱스가있는 작업 목록을 해당 키와 연관시키고 사전을 조작하는 데 사용할 수 있습니다. 이것이 유일한 방법입니다. 불가능할 경우 응용 프로그램 논리를 재구성하는 것이 좋습니다.

당신은 그래서 당신이 그것을 연관되어있는 실제 작업 문자열을 얻을 수있는 방법을 찾을

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

등의 기능을 추가해야합니다.

관련 문제