Tôi có hai chế độ xem trong ứng dụng nhanh chóng của mình. Tôi đang thực hiện một segue như dưới đây.Swift Timer.scheduledTimer() không hoạt động
ViewController.swift -----------------> GameViewController.swift
Khi tải GameViewController một mảng giá trị cũng truyền cho GameViewController.swift từ ViewController.swift
Bạn phải khởi chạy bộ hẹn giờ trong GameViewController.swift
Tôi đã cố gắng khởi tạo bộ hẹn giờ và gọi phương thức qua bộ hẹn giờ nhưng không hoạt động.
Sau đây là các đoạn mã của tôi.
ViewController.swift
func signIn(difficultyLvl:String){
let username = usernameTxt.text
let password = passwordTxt.text
let url = URL(string: "http://192.168.1.106/speed/scoreBoardController.php?username="+username!+"&password="+password!+"&action=SIGNIN")
let task = URLSession.shared.dataTask(with: url!) {(data, response, error) in
let isPassed = String(data: data!, encoding:.utf8)?.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
var gameViewControllerParams = [Int: [String: String]]()
gameViewControllerParams[0] = ["userId" : isPassed!]
gameViewControllerParams[1] = ["difficultyLvl" : difficultyLvl]
if(isPassed != "null"){
self.performSegue(withIdentifier: "gotoGame", sender: gameViewControllerParams)
}
}
task.resume()
}
GameViewController.swift
class GameViewController: UIViewController {
var gameViewControllerParams = [Int: [String: String]]()
override func viewDidLoad() {
super.viewDidLoad()
let _ = Timer.scheduledTimer(timeInterval: 1.0, target:self, selector: #selector(self.setCalculationLs), userInfo:nil,repeats: true)
}
func setCalculationLs(){
print("Timing")
}
}
Tôi cảm thấy đó là vấn đề với việc đặt đối tượng đích trong bộ hẹn giờ. Bất kỳ suggetions. Cảm ơn –
Bạn không gửi mảng tới 'GameViewController', làm điều đó trong' chuẩn bị (cho: người gửi:) '. tham số 'sender' phải là' self' – paper1111
Chính xác thì vấn đề là gì? GameViewController có được tải không? ViewDidLoad() có được gọi không? Làm thế nào là mảng đi qua liên quan đến vấn đề hẹn giờ? - Nói chung, mã hẹn giờ của bạn sẽ hoạt động. –