Я пытаюсь вычислить орбитальную позицию спутника и другие точки данных в зависимости от моего текущего времени. В настоящее время у меня есть класс «Вычисления» со всеми моими вычислениями, включая две основные функции: keplerianElementsToECEF и ecefToData. В представлении контроллера вид загрузки я ввел 6 элементов keplerian, эпоху и дату расчета (текущая дата). Однако, несмотря на то, что калькуляция выполняется и мое табличное представление отображает значения точно, значения не обновляются, и табличное представление просто отображает вычисления для начальной даты, в которую было загружено представление. Я почти уверен, что проблема вызвана размещением даты в представлении контроллера, загруженном, но я не знаю, как обойти эту проблему.
var date = Date()
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
var dateAtCalculationAsString: String = dateFormatter.string(from: date)
// converting User's current time to UTC time to aid in computations
let dateAtCalculation = localToUTC(date: dateAtCalculationAsString)
print(dateAtCalculation)
//let epoch = epoch, let inclination = inclination, let longitudeAscendingNode = longitudeAscendingNode, let eccentricity = eccentricity, let argumentPerigee = argumentPerigee, let meanAnomaly = meanAnomaly, let meanMotion = meanMotion {
Calculations.shared.keplerianElementsToECEF(meanMotion: meanMotion!, eccentricity: eccentricity! , Inclination: inclination!, LongitudeAscendingNode: longitudeAscendingNode!, argumentPerigee: argumentPerigee!, M0: meanAnomaly!, epoch: epoch!, date: dateAtCalculation)
datavalues = Calculations.shared.ecefToData()