Я использую некоторые значения для выполнения некоторых расчетов. В целях тестирования я показываю в Label1 значение как строку, поскольку оно хранится как строка, а в Label2 я показываю приведенное значение как Double, поскольку они мне нужны в конце как двойники для моих вычислений.
странно то, что когда я обращаюсь к ViewController в первый раз, он не показывает никаких значений. Но если я go вернусь и снова нажму на него с помощью контроллера навигации, это действительно сработает. Но мне нужны значения сразу, потому что мое первоначальное намерение, как я уже сказал, состоит в том, чтобы не показывать какие-то ярлыки, а скорее делать с ними некоторые вычисления.
Я сделал небольшой гиф, чтобы показать вам, в чем проблема, но у меня есть проблема с добавлением фото. В основном происходит то, что я нажимаю на ViewController с метками, и ничего не отображается. Я go назад и снова нажимаю, и значения будут отображаться на этикетках.
Почему это так и как это можно сразу показать / сразу использовать для вычислений
Спасибо за Помогите. :)
class AHPfinalPreferencesViewController: UIViewController {
var ahpPrios = [AHPPriorityStruct]()
let decoder = JSONDecoder()
@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!
let ajkpXc = globaLajkpXc
let ajkpXijr = globaLajkpXijr
let valueA = globaLajkpXc
let valueB = Double(globaLajkpXijr)
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UserService.ahpPref(for: User.current) { (ahpPrios) in
self.ahpPrios = ahpPrios
print("This is our AHP PRIOS", ahpPrios)
for ahpPrio in ahpPrios {
print(ahpPrio)
}
print("this is the global ajk. ", self.ajkpXc)
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Mark: - Get Data
label1.text = valueA
label2.text = "\(String(describing: valueB))"
// MARK: - Set Values for calculation
// setValues()
// ahpCalculation()
}
}
Может быть, это из-за globalVariables? Я знаю, что это неправильный способ сделать это, но для моих целей это абсолютно "нормально"
import Foundation
import FirebaseAuth.FIRUser
import FirebaseDatabase
import FirebaseUI
import FirebaseAuth
import CodableFirebase
var globaLajkpXc: String = String()
var globaLajkpXijr: String = String()
var globaLajkpXqpa: String = String()
struct UserService {
static func ahpPref(for user: User, completion: @escaping ([AHPPriorityStruct]) -> Void) {
let ref = Database.database().reference().child("AHPRatings").child(user.uid)
ref.observe(DataEventType.value, with: { snapshot in
guard let value = snapshot.value else { return }
do {
let ahpPrios = try FirebaseDecoder().decode(AHPPriorityStruct.self, from: value)
print(ahpPrios)
// MARK: - lets store the values in the actual constants :)
let ajkpXc = ahpPrios.ajkpXc
let ajkpXijr = ahpPrios.ajkpXijr
let ajkpXqpa = ahpPrios.ajkpXqpa
globaLajkpXc = ajkpXc ?? "no Value"
globaLajkpXijr = ajkpXijr ?? "no Value"
globaLajkpXqpa = ajkpXqpa ?? "no Value"
} catch let error {
print(error)
}
})
}
}
[1]: https://i.stack.imgur.com/VKxaE.png