2016-08-30 2 views
1

사전의 동일한 키에 여러 값을 추가하고 싶습니다. 내가 키 "XYZ"이 자사의 업데이트 값으로 입력사전을 '값'으로 갖는 사전에 추가 및 업데이트

var dic1 = [String:[String:AnyObject]](

dic1.updateValue(["name": cellName,"phone": Phone], forKey: "XYZ") 

의 딕을 가지고 있지만 나는 같은 키 "XYZ"에 더 많은 값을 추가합니다. 누구든지 나를 도와 줄 수 있습니까?

+0

당신은 + = 제안'func + = (inout lhs : [Key : 값], rhs : [키 : 값])을 사용하기 위해 해당 사용자 지정 연산자를 추가해야합니다. rhs.forEach {lhs [$ 0] = $ 1} }' –

+0

@LeoDabus 이걸 좀 도와 주시겠습니까? 단계 또는 무엇이든지 당신에게 적합 할 수 있습니다. –

+0

이것은 오류를 해결합니다 + = [String : AnyObject] 피연산자 두 개와 함께 사용할 수 없습니다. –

답변

0
 var mutDictionary = [String: NSMutableDictionary]() 
     let keyVar = String(cellName[cellName.startIndex]) 
     if mutDictionary[keyVar] == nil { 
      mutDictionary.updateValue([:], forKey: keyVar) 
      mutDictionary[keyVar]?.setObject(["Name" : cellName, "Phone" : Phone], forKey: cellName) 
     } 
     else{ 
      mutDictionary[keyVar]?.setObject(["Name" : cellName, "Phone" : Phone], forKey: cellName) 
     } 
    print(mutDictionary) 
0

이 뜻입니까?

1) 클래스를 정의해야하고 그 안에 많은 값을 넣을 수 있습니다 : 제가 질문을 이해 한 경우

var value = Dict1["XYZ"] 
value["address"] = "AAA BBB CCC 1234" 
Dict1["XYZ"] = value 
0

. 예 :

var user_location, user_mail, user_name, user_pass, user_urlPicture: String! 

init(user_location: String!, user_mail: String!, user_name: String!, user_pass: String!, user_urlPicture: String!){ 

    self.user_location = user_location 
    self.user_mail = user_mail 
    self.user_name = user_name 
    self.user_pass = user_pass 
    self.user_urlPicture = user_urlPicture 

} 
// DictionaryConvertible protocol methods 
required convenience init?(dict: [String:AnyObject]) { 
    guard let user_location = dict["user_location"] as? String, user_mail = dict["user_mail"] as? String, user_name = dict["user_name"] as? String, user_pass = dict["user_pass"] as? String, user_urlPicture = dict["user_urlPicture"] as? String else { 
     return nil 
    } 
    self.init(user_location: user_location, user_mail: user_mail, user_name: user_name, user_pass: user_pass, user_urlPicture: user_urlPicture) 
} 
var dict:[String:AnyObject] { 
    return [ 
     "user_location": user_location, 
     "user_mail": user_mail, 
     "user_name": user_name, 
     "user_pass": user_pass, 
     "user_urlPicture": user_urlPicture 
    ] 
} 

2) ("사용자") 클래스에서 당신은 당신의 값을 추가 할 수 있습니다 :

let user = User(yourLocation, user_mail: yourMail, user_name: yourName, user_pass: yourPass, user_urlPicture: yourUrlPicture) 
1

간단하고 우아한 해결책을 -

var mutDictionary = [String: NSMutableDictionary]() 

//Initialising your mutDictionary:- 
mutDictionary = ["Fighters" : ["First" : ["NAME" : "The Tigress", "Phone" : "2131231231"]]] 

//Adding a key-hashabale(or in this case String-NSMutableDictionary) pair. 
//`.updateValue` adds a new parent pair to your mutDictionary if your key value is not present if the key is present then it will update that key's value. 
mutDictionary.updateValue(["First" : ["NAME" : "Uruguay", "Phone" : "903192301293"]], forKey: "The Bosses") 
mutDictionary.updateValue(["FirstOfHisKind" : ["NAME" : "Panda", "Phone" : "123454362"]], forKey: "The Dragon Warrior")  

//Appending data to your mutDictionary:- 
mutDictionary["Fighters"]?.setObject(["NAME" : "Guru Shifu", "Phone" : "121212121212"], forKey: "Second") 

print(mutDictionary) 

출력은 당신을 이것으로부터 얻으십시오 : -

["Fighters"   : { Second = { NAME = Guru Shifu; 
             Phone = 121212121212;}; 
          First = { NAME = The Tigress; 
             Phone = 2131231231;}; 
           }, 
    "The Bosses"  : {First = { NAME = Uruguay; 
            Phone = 903192301293;}; 
           }, 
    "The Dragon Warrior": {First = { NAME = Panda; 
            Phone = 123454362;}; 
          }] 
+0

고마워요. 친구. 그게 정확히 내가 원하는 건 아니지만 나에게 아이디어를 주었고 나는 바람직한 결과를 얻었다. 나는 응답으로 그것을 업로드하고있다 –

+0

@NavjotSingh 당신이 제공하는 정보의 양을 감안할 때, 응답이 만족 스럽다면, 당신이해야 할 일은 그것을 받아들이고 upvote 만하면된다.당신은 또한 SO가 개인적인 도움 센터가 아니라는 것을 이해할 필요가 있습니다. 대부분 사람들이 왜 여기에 답하는 것이 당신의 문제로 끝날지도 모르는 다른 사람들을 돕는 것입니다. 우리가 가능한 한 많이 대답을 일반화하려는 이유 또는 대답을 원할 때 구체적으로 당신이하지 않은 구체적인 세부 사항을 제공하십시오. 조회하십시오 : - http://stackoverflow.com/help/someone-answers. – Dravidian

+0

이 배열 "mutDictionary"를 "name"키별로 정렬하는 데 도움을 줄 수 있습니까? –

관련 문제