В настоящее время я пишу специальное приложение для повышения производительности, и я бегу в блокпост. Я использую метод кодирования MVC. У меня есть все расчеты времени в классе модели и обновления вида в классе контроллера.Как отправить данные из модели обратно в контроллер в swift?
Однако у меня возникают проблемы с отправкой данных с модели на контроллер. Я не могу использовать метод return, потому что функция класса модели, которая обрабатывает данные, вызывается другим методом, а не классом контроллера.
Вот мой ViewController класс:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
@IBOutlet weak var cartonInput: UITextField!
@IBOutlet weak var peopleInput: UITextField!
@IBAction func goButton(sender: UIButton) {
let calculator = MyClass()
if let people = Int(peopleInput.text!){
if let carton = Int(cartonInput.text!){
let placeholder = calculator.timeCalculation(carton, people: people)
calculator.startTimer(placeholder)
}
}
}
}
Вот модель, которая обрабатывает все расчеты:
import Foundation
class MyClass {
var timerCounter:NSTimeInterval!
func stringFromTimeInterval(interval: NSTimeInterval) -> String {
let interval = Int(interval)
let seconds = interval % 60
let minutes = (interval/60) % 60
let hours = (interval/3600)
return String(format: "%02d:%02d:%02d", hours, minutes, seconds)
}
func startTimer(hour: Int) {
timerCounter = NSTimeInterval(hour)
NSTimer.scheduledTimerWithTimeInterval(1, target: self,
selector: #selector(MyClass.onTimer(_:)),
userInfo: nil, repeats: true)
}
@objc func onTimer(timer:NSTimer!){
//this is where I need to send the data from, back to the
//controller so that the controller can update the display.
timerCounter! -= 1
}
func timeCalculation(cartons: Int, people: Int) -> Int{
let numberOfCartons = Double(cartons)
let numberOfPeople = Double(people)
let timeCalculations: Double = numberOfCartons/4.7/
numberOfPeople
let timeSeconds = (timeCalculations * 60) * 60
return Int(round(timeSeconds))
}
}
Я новичок, так что любая помощь с объяснением объясняется просто, насколько это возможно будет очень признателен. Это поможет мне учиться и расти.