Я пытался создать приложение, которое позволяет мне искать, содержит ли продукт определенный элемент. Я использую базу данных firebase для хранения ингредиентов предметов, но с моей программой все еще возникает та же проблема. Каждый раз, когда я использую функцию, которая должна проверять ингредиенты, она продолжает использовать одно и то же значение, а затем получает все данные после l oop.
Test2: for _ in 1...10000{
d = d + 1
print(d)
let refer = Database.database().reference()
refer.child("\(Search)/Ingredients/Contains/\(d)").observeSingleEvent(of: .value) {
(snapshot) in ISITIN = snapshot.value as? String ?? "Error"
print(ISITIN)
}
print(ISITIN)
sleep(2)
if (ISITIN == String(Allergy)){
Test.text = "This product contains \(Allergy)"
break Test2
}
else if (ISITIN == String("Error")){
Test.text = "There has been an error"
break Test2
}
if d == Results {Test.text = "This product doesn't contain \(Allergy)"; break Test2}
}
вот результат
1,
Tomato,
2,
Tomato,
3,
Tomato,
4,
Tomato,
5,
Tomato,
Tomato,
Sugar,
Salt,
Vitamin C,
Citric Acid,

вот что означают значения, которые не определены в фрагменте кода: Результаты - это количество ингредиентов, Search - это продукт, который я ищу для этого примера это томатный сок Woolworths, аллергия - это ингредиент, который я ищу для продукта. Для пояснения Tomato - это значение по умолчанию для ISITIN
.