前提・実現したいこと
ここに質問の内容を詳しく書いてください。
2秒毎に画像が切り替わるスライドショーアプリを作っています。何とか工夫してシュミレーターではbuild succeedが出るようになったのですが、シュミレーションでstartstopというUIButtonを押すとエラーが出てコードを書く画面に切り替わってしまいます。どのように書き直せばいいのでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
最後に書かれているself.timer.invalidateに、
Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
このようなエラーが出ています。### 該当のソースコード
ソースコード
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var UIImageView: UIImageView!
var imageIndex = 0 var tapCount = 0 var timer: Timer! let images = [UIImage(named: "umi1.jpeg"),UIImage(named: "umi2.jpeg"),UIImage(named: "umi3.jpeg")] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. let imageView = images[0] UIImageView.image = imageView } override func didReceiveMemoryWarning(){ super.didReceiveMemoryWarning() } @IBAction func backImage(_ sender: Any) { if imageIndex == 0{ imageIndex = 2 }else{ imageIndex -= 1 } UIImageView.image = images[imageIndex] } @IBAction func nextImage(_ sender: Any) { if imageIndex == 2{ imageIndex = 0 }else{ imageIndex += 1 } UIImageView.image = images[imageIndex] } @objc func onTimer(_ timer: Timer){ if imageIndex == 2{ imageIndex = 0 }else{ imageIndex += 1 } UIImageView.image = images[imageIndex] } @IBAction func startStop(_ sender: Any) { tapCount += 1 if tapCount % 2 == 0{ Timer.scheduledTimer(timeInterval: 2,target: self,selector: #selector(onTimer(_:)),userInfo: nil, repeats: true) }else{ self.timer.invalidate() }
}
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 13:57