Есть ли способ вернуть non void в функции void в UIContextMenuInteraction?
Проблема: при длительном нажатии мне нужно проверить, какое правило базы данных соблюдается, и отобразить одно из двух изображений.
Что мне удалось сделать? Сделайте два взаимодействия на одной кнопке в надежде зафиксировать как проверку базы данных, так и вернуть изображение.
Сработало: на симуляторе всегда. Иногда по телефону.
Где в приведенном ниже коде находятся void и non void? То, что я на самом деле хочу сделать,
return ImagePreviewController
часть внутри
if ab as! Int>0
, а не использовать логическое значение и отдельный возврат
contextMenuInteraction(_ interaction: UIContextMenuInteraction, conf let r1 = Database.database().reference().child("switch").child(self.postID).child("switch")
r1.observeSingleEvent(of:.value, with: { [self]snapshot in
if snapshot.exists() {
print("Got data \(snapshot.value!)") //will print true or false
let ab = snapshot.value!
if ab as! Int>0 {
randy = true
///here a Bool is set as true
print("true1")
} else {
print("true2")
//// here a different Bool is set True
Francis = true
}
}
else {
print("No data available")
}
})
if self.randy == true{
// put cc stuff here
let image3 = UIImage(named:"ringy.png")
if let unwrappedImage1 = image3 {
return ImagePreviewController(image:unwrappedImage1)
}
else {
return nil
}
}
else if self.francis == true {
// put cc stuff here
let image3 = UIImage(named:"green.png")
if let unwrappedImage1 = image3 {
return ImagePreviewController(image:unwrappedImage1)
}
else {
return nil
}
}
else {
return nil
}
})
}
На английском языке, что делает код в 2 {} частях:
Часть 1 Выполните вызов базы данных для целого числа. Если оно больше 0, логическое значение Randy установлено в True, если оно не больше 0, логическое Francis установлено в True.
Часть 2 Если Randy - True, вернуть InmagePreviewController как Image ringy.pgn, если Francis - True, вернуть InmagePreviewController как Image green.pgn
Вместо того, чтобы делать это двумя частями, мне нужен InmagePreviewController в вызове базы данных.