Iv는이 문제를 해결하기 위해 자신의 길을 선택하려했지만 havnt는 행운이있었습니다.사전 A를 특정 점에서 사전 B에 추가?
여기에 해결하려는 문제가 있습니다.
문제
나는 두 개의 사전을 가지고있다. Dictionary A
은 Array of Dictionaries
이고 Dictionary B
도 Array of Dictionaries
입니다. (아래 예 참조).
이 앱을 설치하면 Firebase DB에서 Dictionary A
을 가져와 var dict
에 저장합니다. 그런 다음 특정 사용자의 데이터 아래에있는 Firebase DB에서 Dictionary B
을 가져옵니다.
Dictionary B
의 값을 Dictionary A
의 특정 스폿에 넣어야합니다.
Dictionary A
에는 게임의 항목이 포함되어 있으며 잠금 해제 할 수 있습니다. Dictionary B
에는 특정 사용자가 잠금 해제 한 모든 총이 들어 있습니다.
사전 A (예)
let items : [[String:String]] = [
[
"type" : "Star 1",
"model" : "Jungle Spray",
"available" : "no",
"rarity" : "normal",
"totalOwned" : "1",
"price" : "9,999"
],
[
"type" : "Star 1",
"model" : "Predator",
"available" : "no",
"rarity" : "normal",
"totalOwned" : "1",
"price" : "10,500"
],
[
"type" : "Star 1",
"model" : "Safari Mesh",
"available" : "no",
"rarity" : "normal",
"totalOwned" : "1",
"price" : "12,950"
],
사전 B (예) 변경 한 경우에만 일을 볼 수 있듯이
let userUnlocked : [[String: String]] = [
[
"type" : "Star 1",
"model" : "Predator",
"available" : "yes",
"rarity" : "normal",
"totalOwned" : "1",
"price" : "9,999"
]
]
는 yes
에 설정된 값 available
입니다. 이 특정 사용자가 총을 열었 음을 의미합니다. 따라서이 배열을 Dictionary A
에 덮어 써야 사용자가 잠금을 해제했다는 것을 알 수 있습니다.
사전 A는 응용 프로그램의 CollectionViewController에서 특정 데이터 구조를 개략적으로 설명하는 데 사용되는 Firebase의 기본 사전입니다. CollectionViewController의 각 셀은 "총"입니다. 플레이어가 CollectionViewController로 이동하면 사전 A와 사전 B (현재 사용자가 잠금 해제 한 모든 총)가 백업되고 사전 A가 업데이트됩니다. 사전 A를 사용하여 '셀'을 만듭니다 (각 총은 세포). 갱신 된 사전 A의 배열은 키 : value'available = yes'로 이미지를 보여줄 것이고'no'는 잠긴 이미지를 보여줄 것입니다. 이것은 이유입니다 :) – brkr
그게 의미가있는 경우. 사전 A는 사전 배열이므로 인덱스를 저장하더라도 순서는 같지 않습니다. – brkr
사전 배열은 순서를 유지하지만 사전 내의 항목은 순서를 유지하지 않습니다. 각 사전은 고유 한 항목을 나타내므로 해당 항목을 나타내는 구조체가 더 좋은 방법 일 수 있습니다 (더 많은 유연성 제공). – DJohnson