Я пытаюсь интегрировать Firebase и AutoCompleteTextField в Swift, так что у меня есть автозаполнение в текстовом поле. У меня возникла проблема с преобразованием словаря в массив, поэтому я могу установить его в autoCompleteTextField.autoCompleteStrings
. Это код, который у меня есть.AutoCompleteTextField и Firebase
func handleTextFieldInterfaces() {
let ref = FIRDatabase.database().reference().child("Airport")
ref.observeEventType(.Value, withBlock: { (snapshot) in
self.autoCompleteTextField.onTextChange = {[weak self] text in
if !text.isEmpty {
var fbosStuff = [String]()
if let snaps = snapshot.value as? [[String: AnyObject]] {
for places in snaps {
print(places)
let names = places["code"] as? String
fbosStuff.append(names!)
}
self!.autoCompleteTextField.autoCompleteStrings = fbosStuff
}
}
}
})
}
и ответ от Firebase, который я пытаюсь поместить в текстовое поле.
Snap (Airport) {
"Long Beach" = {
FBOs = {
Atlantic = {
100LL = "7.0";
freq = "120.1";
fullname = "Atlantic, Long Beach, KLGB";
"jet-A" = "5.5";
"phone number" = "(800) 554-3591";
};
Signature = {
100ll = "7.0";
email = "[email protected]";
freq = "120.1";
fullname = "Signature, Long Beach, KLGB";
"jet-a" = "5.5";
phonenumber = "(800) 554-3591";
};
};
code = KLGB;
fieldname = Daughtery;
location = "Long Beach, California, USA";
};
"Santa Monica" = {
FBOs = {
"American Flyers" = {
100ll = "5.38";
freq = "123.3";
fullname = "American Flyers, Santa Monica, KSMO";
phonenumber = "(310) 390-2099";
};
Atlantic = {
100ll = "7.79";
freq = "122.95";
fullname = "Atlantic, Santa Monica, KSMO";
"jet-a" = "7.19";
phonenumber = "(310) 396-6770";
};
};
code = KSMO;
fieldname = "Santa Monica Muni Airport";
location = "Santa Monica, California, USA";
};
}
, если вы хотите получить значение «код», вам нужно углубиться, вы можете видеть, что он глубоко в вашем ответе, читайте о том, как скомпилировать json. Попробуйте шаг за шагом пойти и проверить, как печатать только то, что вам нужно –
Я пытаюсь получить «Санта-Моника» и «Лонг-Бич» в массив – Court
, так что вы видите, если вы печатаете эту строку печати (места) –